以下は、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 |