17.10 - QUALIFY句のルールと制限 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-171K-JPN
Language
日本語 (日本)
ルールと制限を以下に示します。
  • 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句は指定できません。