SQLで並び替えるORDER BYの使い方|結果を自由に並び替えよう

SQLを使ってデータベースから情報を取得する際、表示する順番をコントロールしたい場面は多いですよね。例えば「日付の新しい順に並べたい」「価格の安い順にしたい」といったケースです。
このようなときに使うのが ORDER BY句 です。
この記事では、ORDER BY の基本的な使い方から、複数条件での並び替え、注意点まで解説します。
Contents
ORDER BY句の基本構文
SELECT 列名
FROM テーブル名
ORDER BY 列名 [ASC|DESC];- ASC … 昇順(小さい値 → 大きい値)
- DESC … 降順(大きい値 → 小さい値)
- 省略した場合は ASC(昇順) になります。
使用例
1. 年齢を昇順に並び替える
SELECT name, age
FROM users
ORDER BY age ASC;👉 年齢の若い順に並び替えられます。
2. 登録日の新しい順に並び替える
SELECT name, created_at
FROM users
ORDER BY created_at DESC;👉 日付の降順になるため、新しいユーザーから順に表示されます。
複数条件での並び替え
ORDER BY は複数の列を指定できます。
SELECT name, department, age
FROM employees
ORDER BY department ASC, age DESC;👉 この場合は「部署ごとに昇順」で並び、その中で「年齢の高い順」に並びます。
数字・文字列・日付での並び替えの違い
- 数字 → 小さい順 / 大きい順
- 文字列 → 辞書順(あ → ん、a → z)
- 日付 → 古い日付 → 新しい日付
データ型によって並び替えの結果が変わるので注意しましょう。
ORDER BYの注意点
- 処理速度
データ量が多いと並び替え処理に時間がかかることがあります。必要な場合のみ使うようにしましょう。 - NULL値の扱い
多くのDBMSでは、NULLは最小値として扱われ、昇順なら先頭、降順なら末尾に並びます。
ORDER BYと他のSQL構文の組み合わせ
ORDER BY は他のSQL構文と一緒に使うことが多いです。
- WHERE句 と組み合わせて条件を絞った後に並び替え
(👉 SQLのWHERE句の使い方 参照) - GROUP BY句 で集計した後に並び替え
(👉 SQLの集計関数とGROUP BYの使い方 参照) - LIMIT句 と組み合わせて上位データを取得
(👉 SQLでデータを制限するLIMITの使い方 参照)
まとめ
ORDER BYを使うと取得データの順序を自由に並び替えできるASC(昇順)とDESC(降順)を使い分ける- 複数の列で並び替え可能
WHEREやGROUP BYと組み合わせるとさらに便利
SQLの基本をしっかり押さえておくことで、欲しいデータを見やすい形で取得できるようになります。
👉 次は SQLの基本構文まとめ もチェックしてみましょう。

