【SQL】 ORDER BY句の使い方(結果の並び順を指定する)

アイキャッチ画像 SQLリファレンス
SQLリファレンス
この記事は約3分で読めます。
Recommended Articles

【SQL】 ORDER BY句の使い方(結果の並び順を指定する)

ORDER BY句 : 書式

SELECT 列名1 [,列名2...] FROM 表1 [,表名2...]
ORDER BY <列名>[ ASC | DESC ]

ORDER BY句 : 解説

ORDER BY句は、指定した列の値により、問合せ結果を並び替えるものです。並べ替えのことをソート(SORT)と呼びます。RDBMS製品により異なりますが、多くの製品は結果の並べ方を指定しないとデータの挿入した順に並ぶ製品が多いようです。そのため、問合せにおいて、一定の並べ方のデータが必要な場合には、ORDER BY句で結果の並べ方を指定します

ORDER BY句の記述は、並べ替えの基準となる列を指定するだけです。複数の列を指定したいときには、「,」(カンマ)で区切って指定します。複数の列を指定した場合には、まず最初に記述した列の値で並べ替えが行われ、並べ替えた列に同じ値があるものを、2つ目に指定した列の値で並べ替えます。

並べ替えを行うときに、順番をどうするかを指定できます。並べ方の指定は列の指定の後ろに次のキーワードを指定します。

  • ASC : 小さいもの順 (昇順)
  • DESC ; 大きいもの順 (降順)

何も記述しない場合には、昇順が指定されるので、「ASC」の記述を行うのは、SQL文がわかりやすいように明示的に指定するときくらいでしょう。昇順、降順は英数字なら数字の順番やアルファベット順になりますが、日本語などの場合には、文字コード順になります。データベースにどの文字コードでデータを入れるかによって並び順が変わる可能性があります。

ORDER BY句 : NULLのソート順

NULLのソート順は、RDBMS製品により扱いが異なります。

  • MS-SQL Server、MS-Accessでは、NULLは最も小さい値として扱われる
  • ORACLEでは最も大きい値として扱われる

ORDER BY句 : 使用例 

「入社」列を昇順に並べ替えて、さらに「年齢」列で降順に並べ替える場合には、次のように記述します。

SQL文 SELECT * FROM 社員 ORDER BY 入社, 年齢 DESC;

実行結果

名前年齢入社
小林守351993
山田太郎281998
斉藤隆391999
高橋綾子281999
森毅271999
佐藤花子242000
表:社員
名前年齢入社
山田太郎281998
佐藤花子242000
小林守351993
斉藤隆391999
森毅271999
高橋綾子281999

関連リンク

【SQLの基礎知識⑫】 結果を並び替える(ORDER BY句)
結果の並べ替え(ORDER BY句)の基本を習得できます。いちれべ.comは、オラクル、MS-SQL、MS-Access で使用可能か一目でわかるサイトです。
SQLリファレンスTOPページ
SQLリファレンス
データの操作、演算子、関数を解説します。
Recommended Articles