CTE(WITH 句)high を使う書き方として正しいのは?
SELECT name FROM highWITH high AS (SELECT * FROM emp WHERE salary >= 300)ORDER BY name;正答
- WITH high AS (SELECT * FROM emp WHERE salary >= 300) SELECT name FROM high ORDER BY name;
- SELECT name FROM high ORDER BY name WITH high AS (SELECT * FROM emp WHERE salary >= 300);
- WITH high (SELECT * FROM emp WHERE salary >= 300) SELECT name FROM high ORDER BY name;
- 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
この問題を含む SQL のテストを制限時間つきで解く
SQLクイズへ