SQL4 択難易度 基礎

給与の高い順に上位 2 名を出したい。正しいのは?

SELECT name FROM emp LIMIT 2 ORDER BY salary DESC;

正答

  1. SELECT name FROM emp ORDER BY salary LIMIT 2 DESC;
  2. SELECT TOP 2 name FROM emp ORDER BY salary DESC;
  3. SELECT name LIMIT 2 FROM emp ORDER BY salary DESC;
  4. SELECT name FROM emp ORDER BY salary DESC LIMIT 2;

解説

LIMIT は ORDER BY で並べ替えた結果から先頭 N 行を取る句なので、文の最後に書く。LIMIT を ORDER BY より前に置くと SQLite では構文エラーになる。DESC は直前の並べ替えキーに付く修飾語で、LIMIT を挟んで切り離すことはできない。SELECT TOP 2 は SQL Server の書き方で、SQLite には TOP というキーワードがないため通らない。

参考: www.sqlite.org

order-bylimitclause-order

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

SQLクイズへ