以下は、NORMALIZEの例のテーブル定義です。
CREATE TABLE project ( emp_id INTEGER, project_name VARCHAR(20), dept_id INTEGER, duration PERIOD(DATE) );
テーブルには、以下の行が含まれます。
| Emp_ID | Project_Name | Dept_ID | Duration |
|---|---|---|---|
| 10 | First Phase | 1000 | 10 Jan 2010 - 20 Mar 2010 |
| 10 | First Phase | 2000 | 20 Mar 2010 - 15 July 2010 |
| 10 | Second Phase | 2000 | 15 June 2010 - 18 Aug 2010 |
| 20 | First Phase | 2000 | 10 Mar 2010 - 20 July 2010 |
次のSELECT文は、emp_idに正規化操作を実行します。選択リストに含まれているPERIOD列は1つのみであることに注意してください。
SELECT NORMALIZE ON MEETS OR OVERLAPS emp_id, duration FROM project;
この問合わせは以下の結果を返します。
| Emp_ID | Duration |
|---|---|
| 10 | 10 Jan 2010 - 18 Aug 2010 |
| 20 | 10 Mar 2010 - 20 July 2010 |
次のSELECT文は、project_nameに正規化操作を実行します。選択リストに含まれているPERIOD列は1つのみであることに注意してください。
SELECT NORMALIZE project_name, duration FROM project;
この問合わせは以下の結果を返します。
| Project_Name | Duration |
|---|---|
| First Phase | 10 Jan 2010 - 20 July 2010 |
| Second Phase | 15 June 2010 - 18 Aug 2010 |
次のSELECT文は、project_nameとdept_idに正規化操作を実行します。選択リストにPERIOD列が1つのみ含まれていることに注意してください。
SELECT NORMALIZE project_name, dept_id, duration FROM project;
この問合わせは以下の結果を返します。
| Project_Name | Dept_ID | Duration |
|---|---|---|
| First Phase | 1000 | 10 Jan 2010 - 20 Mar 2010 |
| First Phase | 2000 | 20 Mar 2010 - 20 July 2010 |
| Second Phase | 2000 | 15 June 2010 - 18 Aug 2010 |