派生テーブルのルールと制限 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/vnq1596660420420.ditamap
dita:ditavalPath
ja-JP/vnq1596660420420.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage
ルールと制限を以下に示します。
  • 派生テーブルとビューの意味は同じであり、制限についても同様です。
  • 派生テーブルの有効範囲は、サブクエリーを呼び出したSELECT文のレベルに限定されます。
  • 文内で作成する各派生テーブルには固有なテーブル相関名が必要です。
  • 派生テーブルでは、次のオプションを指定することはできません。
    • ORDER BY
    • WITH … BY
  • 派生テーブルを作成するために使用するsubqueryの選択リストで列名を指定する場合、完全修飾列名が必須です。そうしないと、あいまいな列名になります。

    このルールは、ビューを作成するためのルールと一致しています。

    このクエリーで、派生テーブルを作成するサブクエリーの選択リスト中で指定されている列が修飾されていません。

          SELECT *
          FROM (SELECT *
                FROM tab1 AS t1, tab2 AS t2
                WHERE t1.col2 = t2.col3) AS derived_table;
          
          *** Failure 3515 Duplication of column COL1 in creating a Table,
          View, Macro or Trigger.
          Statement# 1, Info =95
          *** Total elapsed time was 1 second.

    正しい問合わせは以下のように作成されます。

          SELECT *
          FROM (SELECT t1.col1, t1.col2, t1.col3, t2.col1,
                       t2.col2, t2.col3
                FROM tab1 AS t1, tab2 AS t2
                WHERE t1.col2=t2.col3) AS derived_table (t1_col1,
                      t1_col2, t1_col3, t2_col1, t2.col2, t2_col3);
  • 派生テーブルの内容を定義するサブクエリーに、SELECT AND CONSUME文を含めることはできません。