SQL4 択難易度 基礎

CTE(WITH 句)high を使う書き方として正しいのは?

SELECT name FROM highWITH high AS (SELECT * FROM emp WHERE salary >= 300)ORDER BY name;

正答

  1. WITH high AS (SELECT * FROM emp WHERE salary >= 300) SELECT name FROM high ORDER BY name;
  2. SELECT name FROM high ORDER BY name WITH high AS (SELECT * FROM emp WHERE salary >= 300);
  3. WITH high (SELECT * FROM emp WHERE salary >= 300) SELECT name FROM high ORDER BY name;
  4. WITH high AS SELECT * FROM emp WHERE salary >= 300 SELECT name FROM high ORDER BY name;

解説

WITH 句(共通テーブル式、CTE)は SELECT 文の前に置き、「名前 AS (問い合わせ)」で一時的な表を定義してから本体の SELECT でその名前を参照する。本体の SELECT の後ろや ORDER BY の後ろに WITH を書くと構文エラーになる。AS を省いた形は、名前の直後の括弧が列名リストとして解釈されるため失敗する。問い合わせを括弧で囲まない形も文法に合わない。

参考: www.sqlite.org

withcteclause-order

この問題を含む SQL のテストを制限時間つきで解く

SQLクイズへ