16.20 - Nonsequenced Valid-Time問合わせ - Teradata Vantage NewSQL Engine

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

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1182-162K-JPN

nonsequenced問合わせは、基礎テーブルのvalid-timeの状態(履歴、現在、将来)を同時にすべて操作対象にします。このような問合わせは、すべての状態を結び付けることができるため非常に強力なものになります。

nonsequenced valid-time問合わせは、テーブルの時間依存性を無視するために使用するか、単一状態の結果テーブルの計算に異なる時点の1つの状態の情報を利用するときに使用します。

nonsequenced問合わせは、valid-time列を、単にPERIOD値を格納している通常の列と同様に扱います。問合わせでは、この列をその他の列とまったく同様に問合わせ内に指定できます。

nonsequenced問合わせでは、valid-time列にNULLを持つ行を選択できます。そのような行を選択できる、その他のテンポラルSELECT修飾子はありません。

NONSEQUENCED VALIDTIME修飾子でperiod_expressionを指定しないと、valid-timeテーブルに対するnonsequenced問合わせは、結果として非valid-timeテーブルになります。

period_expressionを指定すると、問合わせの結果がvalid-timeテーブルになります。ただし、結果テーブルのvalid-time列は、問合わせ先のテーブルにあるvalid-time列とは違う列になります。結果テーブルには、VALIDTIMEという追加の列が含まれます。この列は、valid-time列と同じ役割を果たします。各行のVALIDTIMEの値は、問合わせに指定した適用期間になります。この形式のnonsequenced valid-time問合わせは、非テンポラル テーブルを、有効時間を含むテーブルに変換するために使用できます。このような問合わせは、集合演算子(UNION、INTERSECTおよびMINUS)を指定するリクエスト内では使用できません。

射影リストが*の場合は、valid-time列がその他すべての非valid-time列と共に射影されます。

同一の選択ブロック内のWHERE条件など、他の句からのVALIDTIMEの参照は、既存の解決ルールに従います。また、システム射影列は参照できません。たとえば、参照先のどのテーブルにもVALIDTIMEという名前の列がないときには、エラーになります。射影リスト内で、列の別名としてVALIDTIMEを使用することはできません。

適用期間として別名を指定する場合には、その別名を選択(射影)リストの有効範囲内に入れて、射影リスト内で明確に参照する必要があります。

問合わせに二重テンポラル テーブルまたはtransaction-timeテーブルが関与する場合は、transaction-time次元に適用される追加情報に関する以下のトピックを参照してください。