QUALIFY句のルールと制限 - 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
ルールと制限を以下に示します。
  • QUALIFY句の検索条件にLOB列を指定することはできません。
  • QUALIFY句の検索条件では、サブクエリーと結合したOR条件を指定することはできません。

    次の問合わせは、サブクエリーと結合したOR条件のため失敗します。

         SELECT RANK (column_1)
         FROM table_1
         QUALIFY column_1 IN (SELECT table_2.column_1
                              FROM table_2)
         OR table_1.column.1 = 10000;
  • 問合わせの中でQUALIFY句を指定する場合は、以下のいずれかの位置に統計関数も指定する必要があります。
    • SELECT句の選択リスト
    • GROUP BY句のグループ化キー
    • QUALIFY句の検索条件
  • 検索条件に行レベル セキュリティ制約の値を指定すると、この値はエンコード形式で表現しなければなりません。
  • QUALIFY句内で検索条件の一部としてDEFAULT関数を使用する場合、以下のルールが適用されます。
    • DEFAULT関数は、述部において列名の引数で指定できます。データベースは、引数として指定した列のデフォルト値に対してDEFAULT関数を評価し、その値を述部の定数のように使用します。
    • 式内で比較演算子の各側に条件として1つの列指定と1つのDEFAULT関数がある場合に限り、述部で列名の引数を使用せずにDEFAULT関数を指定できます。
    • DEFAULT関数がNULLと評価される場合、既存の比較ルールに従って、IS NULLまたはIS NOT NULL以外の比較演算子とともに使用されたDEFAULT関数を含む条件は、不明な値と評価されます。

      DEFAULT関数とNULLとを比較する場合、IS NULLまたはIS NOT NULL以外の条件は、不明な値と評価されます。

      DEFAULT関数と一緒に使用する条件 比較
      IS NULL
      • デフォルトがNULLの場合はTRUE
      • そうでない場合はFALSE
      IS NOT NULL
      • デフォルトがNULLの場合はFALSE
      • そうでない場合はTRUE

    DEFAULT関数の詳細について、<Teradata Vantage™ - SQL関数、式、および述部、B035-1145>を参照してください。

  • TOP n演算子を指定したSELECT文に、QUALIFY句を指定することはできません。
  • QUALIFY句の述部として使用されるサブクエリーでは、SAMPLE句は指定できません。