SELECT ステートメントの動作

SELECT を含む SQL ステートメントは、論理順序に実行されるよう SQL によって定義された一連の節で構成されます。 SELECT ステートメントを使用すると、ユーザーは、指定の表から取り出す情報を定義して編成できます。

汎用プログラミングインターフェース情報の開始。

以下の文節リストには、ステートメントにおける文節の論理順序が記載されています。

  1. FROM
  2. WHERE
  3. GROUP BY
  4. HAVING
  5. SELECT
  6. ORDER BY
汎用プログラミングインターフェース情報の終了。

さらに、以下の制限があります。

  • 副選択 は最内部から最外部の副選択へと処理されます。 別 SQL ステートメントの WHERE 文節または HAVING 文節にある副選択は、副照会 と呼ばれます。
  • ORDER BY 文節は、副選択、全選択、または SELECT ステートメントに入れることができます。
  • AS 文節を使用して最外部の SELECT 文節で名前を定義する場合、ORDER BY 文節だけがその名前を参照できます。 副選択の中で AS 文節を使用すると、副選択の外部で定義した名前を参照することができます。

汎用プログラミングインターフェース情報の開始。
例: 無効な SELECT ステートメント
間違った SELECT ステートメントを以下に取り上げます。
SELECT EMPNO, (SALARY + COMM) AS TOTAL_SAL
  FROM EMP
  WHERE TOTAL_SAL> 50000;

WHERE句は有効ではありません。なぜなら、 Db2 はWHERE句が処理されるまで、ステートメントのAS TOTAL_SAL部分を処理しないからです。 したがって、 Db2 はAS句で定義されたTOTAL_SALという名前を認識しません。

例:
ただし、ORDER BY 節は AS 節が定義する列名 TOTAL_SAL を参照するため、以下の SELECT ステートメントは有効です:
SELECT EMPNO, (SALARY + COMM) AS TOTAL_SAL
  FROM EMP
  ORDER BY TOTAL_SAL;
汎用プログラミングインターフェース情報の終了。