次の SQL の結果は?(id は 1 から 5 の 5 行)
SELECT id FROM tORDER BY id DESC LIMIT 2 OFFSET 1;正答
- 5, 4
- 4, 3
- 3, 2
- 2, 1
解説
ORDER BY id DESC で 5, 4, 3, 2, 1 の順に並び、OFFSET 1 で先頭の 5 を飛ばし、LIMIT 2 でそこから 2 行取るので 4 と 3 になる。OFFSET を無視すると選択肢 1 の 5, 4 になり、DESC を見落として昇順と考えると 2, 3 のような結果を想像してしまう。LIMIT と OFFSET は並べ替えが終わった後に適用される。
参考: www.sqlite.org
この問題を含む SQL のテストを制限時間つきで解く
SQLクイズへ