dept が 'dev' の行だけに絞る WHERE を足したい。正しいのは?
SELECT name FROM emp ORDER BY name;正答
- SELECT name WHERE dept = 'dev' FROM emp ORDER BY name;
- SELECT name FROM emp ORDER BY name WHERE dept = 'dev';
- SELECT name FROM emp WHERE dept = 'dev' ORDER BY name;
- WHERE dept = 'dev' SELECT name FROM emp ORDER BY name;
解説
WHERE は「どの表から取るか」を決める FROM の直後に書き、行を絞り込む。SELECT 文の句は SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY → LIMIT の順に並べる決まりがあり、ORDER BY の後ろに WHERE を書くと構文エラーになる。SELECT と FROM の間に挟む形や、文の先頭に WHERE を置く形も文法上の位置がないため SQLite は受け付けない。
参考: www.sqlite.org
この問題を含む SQL のテストを制限時間つきで解く
SQLクイズへ