SQL4 択難易度 基礎

dept が 'dev' の行だけに絞る WHERE を足したい。正しいのは?

SELECT name FROM emp ORDER BY name;

正答

  1. SELECT name WHERE dept = 'dev' FROM emp ORDER BY name;
  2. SELECT name FROM emp ORDER BY name WHERE dept = 'dev';
  3. SELECT name FROM emp WHERE dept = 'dev' ORDER BY name;
  4. 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

whereclause-order

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

SQLクイズへ