FROM句の例 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - ANSIテンポラル テーブル サポート

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/kit1592007446534.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1186
Product Category
Software
Teradata Vantage

以下の例では、オープン行とクローズ行の混合を含むemployee_systimeという名前の次のシステムのバージョン情報を含むsystem-timeテーブルに対して問合わせが実行されると仮定しています。

 eid ename  deptno                        sys_start                          sys_end
---- ------ ------ -------------------------------- --------------------------------
1002 Ash       333 2003-07-01 12:11:00.000000-08:00 9999-12-31 23:59:59.999999+00:00
1005 Alice     222 2004-12-01 00:12:23.120000-08:00 2005-05-01 12:00:00.450000-08:00
1004 Fred      222 2002-07-01 12:00:00.350000-08:00 2005-05-01 12:00:00.350000-08:00
1001 Sania     111 2002-01-01 00:00:00.000000-08:00 9999-12-31 23:59:59.999999+00:00
1003 SRK       111 2004-02-10 00:00:00.000000-08:00 2006-03-01 00:00:00.000000-08:00
1004 Fred      555 2005-05-01 12:00:00.350000-08:00 9999-12-31 23:59:59.999999+00:00
1005 Alice     555 2005-05-01 12:00:00.450000-08:00 9999-12-31 23:59:59.999999+00:00

sys_end日付が9999-12-31 23:59:59.999999+00:00でない行は、システム時間でクローズしています。これらの行は最初にテーブルに追加されましたが、テーブルの以前の状態の永続的な記録としてテーブルに残っているため、テーブルから論理的に削除されているか、変更されています。これらの行はUPDATEやDELETEなどのほとんどのSQL操作に参加できませんが、テンポラル修飾子を使用して、system-timeテーブルから取り出すことができます。

この場合、テーブルはFredとAliceの部門値(deptno列)が2005-05-01で変更されたことを示しています。この日付はFredとAliceのクローズ行の終了日であり、新しい情報を含む新しい行の開始日です。

SRKには、9999-12-31 23:59:59.999999+00:00より前のsys_end日付も表示されますが、SRKのテーブルにはオープン行は残っていないため、sys_end日付は行がテーブルから(論理的に)削除された時を示します。

テンポラル修飾子のない簡単なSELECTは、system-timeテーブルのオープンでアクティブな行のみを表示します。オープン行は終了境界が9999-12-31 23:59:59.999999+00:00のsystem-time期間によって示されます。

SELECT * FROM employee_systime;

 eid ename  deptno                        sys_start                          sys_end
---- ------ ------ -------------------------------- --------------------------------
1002 Ash       333 2003-07-01 12:11:00.000000-08:00 9999-12-31 23:59:59.999999+00:00
1001 Sania     111 2002-01-01 00:00:00.000000-08:00 9999-12-31 23:59:59.999999+00:00
1004 Fred      555 2005-05-01 12:00:00.350000-08:00 9999-12-31 23:59:59.999999+00:00
1005 Alice     555 2005-05-01 12:00:00.450000-08:00 9999-12-31 23:59:59.999999+00:00

これは、今日、問合わせが処理される時点の情報の状態を反映しています。テンポラル修飾子を使用して、過去の任意の時間に存在したテーブルのスナップショットを表示し、テーブルの前の状態に対して真であった結果を返すことができます。