ORDER BY

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ログインして解除

この問題にチャレンジするにはログインが必要です。ログインして全ての練習問題にアクセスしましょう。

関連クエリ
  • SELECT データ取得
  • WHERE 条件絞り込み
  • LIMIT 取得件数の制限
QSQL Quest