16.20 - 構文 - SELECT … INTO - Teradata Vantage NewSQL Engine

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

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






テンポラルSQLのANSI標準へのアプリケーションの移植性を確保するため、すべてのテンポラル修飾子を明示的に指定することを推奨します。
CURRENT VALIDTIME
この問合わせがvalid-time次元でcurrentになることを指定します。

問合わせで参照するテーブル(Subquery のFROM句で参照するテーブル、ビューまたは派生テーブルを含む)の少なくとも1つは、有効時間をサポートするテーブルにしなければなりません。

VALIDTIME AS OF date_timestamp_expression
この問合わせがvalid-time次元でAS OFになることを指定します。

date_timestamp_expressionは、日付値またはタイムスタンプ値で評価される定数、スカラーUDF、スカラー サブクエリー、またはビジネス カレンダ関数にすることができます。

式にはパラメータ化された値や、CURRENT_DATEまたはTEMPORAL_DATEのようなビルトイン関数など、任意のDATE式またはTIMESTAMP[(n)] [WITH TIME ZONE]式を使用できますが、列を参照することはできません。このルールの例外は、式に自己格納型の非相関スカラーsubquery を使用できることです。非相関スカラーsubquery は、テンポラル問合わせ修飾子に関係なく、常に時間次元でnonsequencedになると仮定されます。

date_timestamp_expressionにTEMPORAL_DATEまたはTEMPORAL_TIMESTAMPを指定すると、これらのビルトイン関数の値がトランザクションの時刻として評価されます。

問合わせで参照するテーブル(Subquery のFROM句で参照するテーブル、ビューまたは派生テーブルを含む)の少なくとも1つは、有効時間をサポートするテーブルにしなければなりません。

VALIDTIMEとSEQUENCED VALIDTIME
この問合わせがvalid-time次元でsequencedになることを指定します。

問合わせで参照するテーブル(Subquery のFROM句で参照するテーブル、ビューまたは派生テーブルを含む)の少なくとも1つは、有効時間をサポートするテーブルにしなければなりません。

sequenced valid-time問合わせは、結果としてvalid-timeテーブルになります。結果セットに含まれる各行のvalid-time期間は、元の行のvalid-timeと、問合わせに指定したperiod_expressionが重なり合う部分になります。結果セット内のvalid-time列は、VALIDTIMEという名前が付けられた新規の列です。この列は、結果に自動的に追加されます。

period_expressionを省略すると、sequenced問合わせの適用期間のデフォルトは、データ型がPERIOD(DATE)のPERIOD'(0001-01-01, UNTIL_CHANGED)'またはデータ型がPERIOD(TIMESTAMP)のPERIOD'(0001-01-01 00:00:00.000000+00:00, UNTIL_CHANGED)'になります。この場合、結果セットに含まれる行のvalid-time期間は、問合わせ対象のテンポラル テーブルに含まれる元の行のvalid-time期間になります。

NONSEQUENCED VALIDTIME
この問合わせがvalid-time次元でnonsequencedになることを指定します。システムはvalid-time列に特別な意味を与えません。この問合わせでは、valid-time列を他の列と同様に使用することができます。

問合わせで参照するテーブル(Subquery のFROM句で参照するテーブル、ビューまたは派生テーブルを含む)の少なくとも1つは、有効時間をサポートするテーブルにしなければなりません。

period_expression

DML文の適用期間を指定します。

適用期間は、列を参照しないPERIOD定数式である必要がありますが、パラメータ化された値とTEMPORAL_DATEまたはTEMPORAL_TIMESTAMPビルトイン関数を参照できます。

適用期間は、DML文のテンポラル修飾子に関係なく、常に時間次元でnonsequencedである自己格納型の非相関スカラー サブクエリーにすることもできます。

period_expressionが指定されている場合、valid-time列は、問合わせ内の任意の場所で指定したり参照したりすることはできません。valid-time列が派生期間列の場合、問合わせ内の任意の場所でコンポーネント列を指定したり参照したりすることはできません。

period_expressionを省略すると、valid-time列がPERIOD(DATE)の場合には、適用期間のデフォルトにPERIOD'(0001-01-01, UNTIL_CHANGED)'が設定されます。また、valid-time列がPERIOD(TIMESTAMP( n ) WITH TIME ZONE)の場合には、'(0001-01-01 00:00:00.000000+00:00, UNTIL_CHANGED)'に設定されます。ここで、nは精度であり、WITH TIME ZONEは任意です。

nonsequenced問合わせでは、この適用期間は列名を参照しないPERIOD値式か、PERIOD列式またはPERIOD式の別名になります。

SELECT … INTO文がperiod_expressionを指定する場合、選択した値を保存する変数を指定するINTOターゲット リストの要素の数は選択リストの射影された要素より1つ多くする必要があります。この追加のターゲット構成要素には、結果として生成される出力行の有効期間を保存します。

AND
valid-time修飾子とtransaction-time修飾子の両方を指定するためのキーワード。
CURRENT TRANSACTIONTIME
この問合わせがtransaction-time次元でcurrentになることを指定します。

問合わせで参照するテーブル(Subquery のFROM句で参照するテーブル、ビューまたは派生テーブルを含む)の少なくとも1つは、トランザクション時間をサポートするテーブルにしなければなりません。

TRANSACTIONTIME AS OF date_timestamp_expression
この問合わせがtransaction-time次元でAS OFになることを指定します。

問合わせで参照するテーブル(Subquery のFROM句で参照するテーブル、ビューまたは派生テーブルを含む)の少なくとも1つは、トランザクション時間をサポートするテーブルにしなければなりません。

date_timestamp_expressionは、日付値またはタイムスタンプ値で評価される定数、スカラーUDF、スカラー サブクエリー、またはビジネス カレンダ関数にすることができます。

NONSEQUENCED TRANSACTIONTIME
この問合わせがtransaction-time次元でnonsequencedになることを指定します。

nonsequenced問合わせでは、システムはtransaction-time列に特別な意味を与えません。この問合わせでは、transaction-time列を他の列と同様に使用することができます。

問合わせで参照するテーブル(Subquery のFROM句で参照するテーブル、ビューまたは派生テーブルを含む)の少なくとも1つは、トランザクション時間をサポートするテーブルにしなければなりません。

AS OF date_timestamp_expression
この問合わせがvalid-time次元とtransaction-time次元の両方でAS OF問合わせになることを指定します。

date_timestamp_expressionは、日付値またはタイムスタンプ値で評価される定数、スカラーUDF、スカラー サブクエリー、またはビジネス カレンダ関数にすることができます。

この問合わせで参照する有効時間を含むすべてのテーブルは、valid-time次元の修飾に指定された修飾子を使用します。同様に、問合わせで参照するトランザクション時間を含むすべてのテーブルは、transaction-time次元の修飾に指定された修飾子を使用します。

問合わせで参照するテーブルのうち、少なくとも1つのテーブルをテンポラル テーブルにする必要があります。valid-timeテーブルと非テンポラル テーブルのみを参照する場合、AS OF修飾子はVALIDTIME AS OF date_timestamp_expressionを指定することと同等になります。transaction-timeテーブルと非テンポラル テーブルのみを参照する場合、AS OF修飾子はVALIDTIME AS OF TRANSACTIONTIME AS OF date_timestamp_expressionを指定することと同等になります。valid-timeテーブルとtransaction-timeテーブルの両方を参照する場合、AS OF修飾子はVALIDTIME AS OF date_timestamp_expressionAND TRANSACTIONTIME AS OF date_timestamp_expressionを指定することと同等になります。

select_statement
FROM句のテンポラル テーブル サポート強化機能を追加した、従来型のSELECT文の構文を指定します。

FROMの詳細については、FROM句(テンポラル形式)を参照してください。

select_into_statement
FROM句のテンポラル テーブル サポート強化機能を追加した、従来型のSELECT … INTO文の構文を指定します。

FROMの詳細については、FROM句(テンポラル形式)を参照してください。