ORDER BY句についての詳細な解説と使用例。クエリ結果を並び替える方法を学べます。
説明
ORDER BY はクエリの結果を指定した列の値で昇順(ASC)または降順(DESC)に並び替えるための句です。
複数列を指定して優先順位をつけた並び替えも可能です。
基本構文
quest.sql
Loading...
例文
商品を価格の安い順に並び替え
quest.sql
Loading...
— RESULT
クエリを実行してください
商品を価格の高い順に並び替え
quest.sql
Loading...
— RESULT
クエリを実行してください
年齢の降順、同じ年齢は名前の昇順で並び替え
quest.sql
Loading...
— RESULT
クエリを実行してください
価格が高い順に上位5件を取得
quest.sql
Loading...
— RESULT
クエリを実行してください
注意点
デフォルトは ASC(昇順)
ORDER BY column だけで書いた場合は昇順になる。降順にしたい場合は明示的に DESC を付けること。
NULL 値の並び順はDBによって異なる
MySQLではNULLが最小値扱いで昇順の先頭に来るが、PostgreSQLでは最大値扱いになる。
ORDER BY は SELECT の最後に書く
WHERE・GROUP BY・HAVING の後、LIMIT の前に書くのが正しい順序。
インデックスがあれば並び替えコストが下がる
ORDER BY に使う列にインデックスがあると、ファイルソートが省略されてパフォーマンスが向上する。
使用シーン
- 新着順・古い順でデータを表示するとき
- 価格・評価の高い順にランキングを作るとき
- ページングと組み合わせて一覧を表示するとき
- 複数条件で優先順位をつけてソートするとき
このクエリを実践するには?
#6 価格の高い順の商品一覧
初級SELECT基本ログインして解除
この問題にチャレンジするにはログインが必要です。ログインして全ての練習問題にアクセスしましょう。
#7 最安商品の取得
初級SELECT基本ログインして解除
この問題にチャレンジするにはログインが必要です。ログインして全ての練習問題にアクセスしましょう。
#12 名前の昇順でユーザー取得
初級SELECT基本ログインして解除
この問題にチャレンジするにはログインが必要です。ログインして全ての練習問題にアクセスしましょう。
#40 注文ごとの金額
中級JOINログインして解除
この問題にチャレンジするにはログインが必要です。ログインして全ての練習問題にアクセスしましょう。
関連クエリ