次のCREATE TABLE文で作成されたemployeeテーブルで、jobdur1とjobdur2が派生PERIOD列であるとします。
CREATE TABLE employee ( eid INTEGER NOT NULL, name VARCHAR(100) NOT NULL, deptno INTEGER NOT NULL, jobst1 DATE NOT NULL, jobend1 DATE NOT NULL, PERIOD FOR jobdur1(jobst1, jobend1), jobst2 DATE NOT NULL, jobend2 DATE NOT NULL, PERIOD FOR jobdur2(jobst2, jobend2) ) PRIMARY INDEX(eid);
EID | Name | Dept No | JobSt1 | JobEnd1 | JobSt2 | JobEnd2 |
---|---|---|---|---|---|---|
1 | Tom | 101 | DATE'2001-01-01' | DATE'2004-01-01' | DATE'2005-01-01' | DATE'2006-01-01' |
2 | Rick | 201 | DATE'2005-01-01' | DATE'2006-01-01' | DATE'2001-01-01' | DATE'2004-01-01' |
3 | Joo | 301 | DATE'2005-01-01' | DATE'2006-01-01' | DATE'2006-01-01' | DATE'2007-01-01' |
4 | Tam | 401 | DATE'2001-01-01' | DATE'2006-01-01' | DATE'2002-01-01' | DATE'2004-01-01' |
5 | Pat | 501 | DATE'2005-01-01' | DATE'2007-01-01' | DATE'2006-01-01' | DATE'2008-01-01' |
6 | Jack | 601 | DATE'2005-01-01' | DATE'2007-01-01' | DATE'2007-01-01' | DATE'2008-01-01' |
7 | Yu | 701 | DATE'2005-01-01' | DATE'2007-01-01' | DATE'2004-01-01' | DATE'2005-01-01' |
8 | Tim | 801 | DATE'2005-01-01' | DATE'2007-01-01' | DATE'2005-01-01' | DATE'2007-01-01' |
次のSQL文では、OVERLAPSをemployeeテーブルの派生PERIOD列で使用しています。
SELECT eid, name, jobst1, jobend1, jobst2, jobend2 FROM employee WHERE jobdur1 OVERLAPS jobdur2;
結果は以下のようになります。
EID | Name | Dept No | JobSt1 | JobEnd1 | JobSt2 | JobEnd2 |
---|---|---|---|---|---|---|
4 | Tam | 401 | DATE'2001-01-01' | DATE'2006-01-01' | DATE'2002-01-01' | DATE'2004-01-01' |
5 | Pat | 501 | DATE'2005-01-01' | DATE'2007-01-01' | DATE'2006-01-01' | DATE'2008-01-01' |
8 | Tim | 801 | DATE'2005-01-01' | DATE'2007-01-01' | DATE'2005-01-01' | DATE'2007-01-01' |