構文 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/cjo1556732840654.ditamap
dita:ditavalPath
ja-JP/cjo1556732840654.ditaval
dita:id
B035-1182
Product Category
Software
Teradata Vantage
<Teradata Vantage™ - テンポラル テーブル サポート>では、特にテンポラル テーブルに関連する構文について説明します。必須ではない構文やテンポラル テーブルに固有ではない構文は、基本的にこのドキュメントには示されていません。その他の構文については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>、<Teradata Vantage™ - SQLデータ操作言語、B035-1146>、および<Teradata Vantage™ - SQLデータ制御言語、B035-1149>を参照してください。
FROM source_spec [,...]
source_spec
{ table_name [ temporal_qualifier ] [ [AS] correlation_name ] |

  ( subquery ) [AS] derived_table_name
    [ ( column_name [,...] ) ] [ temporal_qualifier ] |

  joined_table [ temporal_qualifier ]
    { CROSS JOIN single_table |

      [ INNER | { LEFT | RIGHT | FULL } [ OUTER ] ]
        JOIN joined_table [ temporal_qualifier ] ON search_condition
    }
}
temporal_qualifier
{ valid_time_qualifier [ AND transaction_time_qualifier ] |
  transaction_time_qualifier [ AND valid_time_qualifier ] |
  AS OF { date_timestamp_expression | ( date_timestamp_expression ) }
}
valid_time_qualifier
{ VALIDTIME AS OF
  { date_timestamp_expression | ( date_timestamp_expression ) } |
  { CURRENT | NONSEQUENCED } VALIDTIME
}
transaction_time_qualifier
{ TRANSACTIONTIME AS OF
  { date_timestamp_expression | ( date_timestamp_expression ) } |
  { CURRENT | NONSEQUENCED } TRANSACTIONTIME
}
table_name
実テーブル、テンポラル テーブル、派生テーブル、またはビューの名前。
VALIDTIME AS OF date_timestamp_expression
VALIDTIME AS OF (date_timestamp_expression)
table_nameからの行の取得に、有効期間がAS OFで指定した日付またはタイムスタンプと重なる行のみが含まれることを指定します。

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

date_timestamp_expressionのデータ型は、valid-time列の要素型と比較可能なものにする必要があります。

AND
valid-time AS OF修飾子とtransaction-time AS OF修飾子の両方を指定するためのキーワード。
TRANSACTIONTIME AS OF date_timestamp_expression
TRANSACTIONTIME AS OF (date_timestamp_expression)
table_nameからの行の取得に、transaction-time期間がAS OFで指定した日付またはタイムスタンプと重なる行のみが含まれることを指定します。

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

date_timestamp_expressionのデータ型は、valid-time列の要素型と比較可能なものにする必要があります。

CURRENT VALIDTIME
table_nameからの行の取得には、valid-time次元内の現在の行のみが含まれ、その行はTEMPORAL_DATEまたはTEMPORAL_TIMESTAMPと重複する有効期間があることを示します。table_nameのvalid-time列は問合わせのスコープ内にあると見なされるため、WHERE条件やJOIN条件のように、テーブル内の他の列として使用できます。
FROM句のCURRENT VALIDTIMEは、文レベルのvalidtime修飾子より優先されます。例えば、次の問合わせについて考えてみます。
SEQUENCED VALIDTIME SELECT Policy.policy_id 
FROM Policy CURRENT VALIDTIME, Policy_History;
この場合、文レベルのSEQUENCED VALIDTIMEは、FROM句でテンポラル修飾子を持つポリシーでは無視されます。ただし、SEQUENCED VALIDTIMEはFROM句に一時的な修飾子がないPolicy_Historyには適用されます。
NONSEQUENCED VALIDTIME
table_nameを非テンポラル テーブルとして扱うことを指定します。valid-time列のないテーブルになります。
CURRENT TRANSACTIONTIME
table_nameからの行の取得にはtransaction-time次元でオープンである行のみが含まれることを指定します。
FROM句のCURRENT TRANSACTIONTIMEは、文レベルのtransactiontime修飾子より優先されます。例えば、次の問合わせについて考えてみます。
NONSEQUENCED TRANSACTIONTIME SELECT Policy_Types.Policy_Name 
FROM Policy_Types CURRENT TRANSACTIONTIME, Policy_History; 
この場合、文レベルのNONSEQUENCED TRANSACTIONTIMEは、FROM句でテンポラル修飾子を持つPolicy_Typesでは無視されます。ただし、NONSEQUECED TRANSACTIONTIMEはFROM句に一時的な修飾子がないPolicy_Historyには適用されます。
NONSEQUENCED TRANSACTIONTIME
table_nameを非テンポラル テーブルとして扱うことを指定します。transaction-time列のないテーブルになります。
AS OF date_timestamp_expression
AS OF (date_timestamp_expression)
table_nameからのすべての既存の時間次元での行の取得を、この日付値またはタイムスタンプ値に限定する。
date_timestamp_expressionのデータ型は、すべてのテンポラル テーブルの要素型と比較可能なものにする必要があります。
[AS] correlation_name
table_nameで参照するテーブルの別名。
(subquery)
Subquery は、派生テーブルの内容を定義します。
[AS] derived_table_name
一時的な派生テーブルに割り当てられる名前。
column_name
subqueryにリストされる列名または式のリストを指定します。名前によるsubquery の列参照が可能になります。
joined_table
省略可能な別名を含む単一のテーブルの名前または入れ子の結合を示す結合テーブルの名前を指定します。
AS OFが有効なのは、joined_tableが任意選択の別名を持つ単一のテーブルの名前である場合のみです。
CROSS JOIN
相互結合。
CROSS JOINは、制約のない、または拡張された、デカルト結合です。
相互結合は、引数に指定したテーブルからのすべての行の連結を返します。2つの結合テーブルを相互結合することができます。
single_table
joined_tableで相互結合される、単一の実テーブルまたは派生テーブルあるいはビューの名前。
[INNER] JOIN
一方のテーブルの対象行が、何らかの結合条件に従って、別のテーブルの対象行と組み合わされる結合。
これは、デフォルトの結合タイプです。
LEFT OUTER JOIN
左外部結合。
LEFTは、FROM句内で最初にリストされているテーブルを指します。
LEFT OUTER JOINでは、左側のテーブル内の、2つのテーブルの内部結合の結果に返されない行とともに、一致する行が、nullで拡張されて、外部結合の結果として返されます。
RIGHT OUTER JOIN
右外部結合。
RIGHTは、FROM句の2番目にリストされているテーブルを指します。
RIGHT OUTER JOINでは、右側のテーブル内の、2つのテーブルの内部結合の結果に返されない行とともに、一致する行が、nullで拡張されて、外部結合の結果として返されます。
FULL OUTER JOIN
完全外部結合。
FULL OUTER JOINは、両方のテーブルの行を返します。
FULL OUTER JOINでは、両方のテーブル内の、内部結合の結果に返されなかった行とともに、一致する行が、nullで拡張されて、外部結合の結果として返されます。
ON search_condition
結果の行が満たしていなければならない1つまたは複数の条件式を指定します。
外部結合式に指定されたINNER JOINまたはOUTER JOINごとにON条件句が必要です。