⏱ 5分 ★★★★☆ 頻出:中

ORDER BY

ASC/DESC・複数キー・NULLの並び順。ORDER BY省略時の動作も理解

ORDER BY=「取得した結果を並び替える」

ORDER BYはSELECT結果を指定した列で昇順・降順に並び替えます。

ORDER BYはSQLの最後に書き、実行順序も一番最後(SELECT後)です。

ORDER BYの基本

-- 単一列で昇順(ASCはデフォルト)
SELECT * FROM products
ORDER BY price ASC;

-- 降順
SELECT * FROM products
ORDER BY price DESC;

-- 複数列で並び替え(カテゴリ昇順→価格降順)
SELECT * FROM products
ORDER BY category ASC, price DESC;

-- SELECT列の番号で指定(非推奨)
SELECT product_name, price FROM products
ORDER BY 2 DESC; -- 2列目(price)で降順

NULLの並び順

NULLの並び順はDBMS依存です。試験ではこれが問われます。

DBMSASC時のNULL位置DESC時のNULL位置
PostgreSQL/Oracle末尾(最大値扱い)先頭(最大値扱い)
MySQL先頭(最小値扱い)末尾(最小値扱い)
NULLS FIRST / NULLS LAST を明示指定するのが安全(PostgreSQL, Oracle対応)。
試験では「ORDER BYを書かないとどうなるか」→ 順序は保証されない(毎回同じ順番とは限らない)が正解。
🧠 確認クイズ
Q1. ORDER BY price DESC の説明として正しいのはどれか?
Q2. ORDER BY department ASC, salary DESC の意味として正しいのはどれか?
Q3. ORDER BYを指定しないSELECTの結果順序はどうなるか?