SQL

【SQL】ORDER BY句の使い方(並び替え)

2021年1月24日

ORDER BY句の基本構文

SQLの「ORDER BY」を使えば、抽出したデータをソート(並び替え)できます。

ORDER BYの基本構文

SELECT  列名  FROM  テーブル名  ORDER BY  列名  [ASC もしくは DESC];

  • ASC:昇順
  • DESC:降順

※ASCは省略可

本記事では、抽出したデータをソート(並び替え)する方法を解説していきます。

また「userテーブル」には、次のようなデータが格納されていることを前提としています。

【userテーブル】

ID (id) ※PK名前 (name)住所 (address)年齢 (age)部署ID (department_id)
1001鈴木一郎東京都441
1002佐藤次郎埼玉県321
1003田中三郎千葉県242
1004伊藤四郎東京都222
1005斎藤五郎東京都554

スポンサーリンク

抽出したデータのソート(並び替え)

昇順で並び替え

「ORDER BY 列名 ASC」で指定した列名の昇順でデータを抽出できます。

次の例は「年齢」の昇順でデータを抽出しています。

■並び替えの例(昇順)

SELECT * FROM user ORDER BY age ASC;

■実行結果

+------+----------+---------+------+---------------+
| id   | name     | address | age  | department_id |
+------+----------+---------+------+---------------+
| 1004 | 伊藤四郎 | 東京都  |   22 |             2 |
| 1003 | 田中三郎 | 千葉県  |   24 |             2 |
| 1002 | 佐藤次郎 | 埼玉県  |   32 |             1 |
| 1001 | 鈴木一郎 | 東京都  |   44 |             1 |
| 1005 | 斎藤五郎 | 東京都  |   55 |             4 |
+------+----------+---------+------+---------------+
5 rows in set (0.00 sec)

降順で並び替え

「ORDER BY 列名 DESC」で指定した列名の降順でデータを抽出できます。

次の例は「年齢」の降順でデータを抽出しています。

■並び替えの例(降順)

SELECT * FROM user ORDER BY age DESC;

■実行結果

+------+----------+---------+------+---------------+
| id   | name     | address | age  | department_id |
+------+----------+---------+------+---------------+
| 1005 | 斎藤五郎 | 東京都  |   55 |             4 |
| 1001 | 鈴木一郎 | 東京都  |   44 |             1 |
| 1002 | 佐藤次郎 | 埼玉県  |   32 |             1 |
| 1003 | 田中三郎 | 千葉県  |   24 |             2 |
| 1004 | 伊藤四郎 | 東京都  |   22 |             2 |
+------+----------+---------+------+---------------+
5 rows in set (0.00 sec)

複数のソート条件で並び替え

「ORDER BY 列名 [ASC または DESC], 列名 [ASC または DESC]」で指定した複数の列名で並び替えできます。(※カンマ区切りで列名を複数指定)

次の例は、第1ソートが「部署ID」の昇順、第2ソートが「年齢」の降順でデータを抽出しています。

■並び替えの例(複数の列)

SELECT * FROM user ORDER BY department_id ASC, age DESC;

■実行結果

+------+----------+---------+------+---------------+
| id   | name     | address | age  | department_id |
+------+----------+---------+------+---------------+
| 1001 | 鈴木一郎 | 東京都  |   44 |             1 |
| 1002 | 佐藤次郎 | 埼玉県  |   32 |             1 |
| 1003 | 田中三郎 | 千葉県  |   24 |             2 |
| 1004 | 伊藤四郎 | 東京都  |   22 |             2 |
| 1005 | 斎藤五郎 | 東京都  |   55 |             4 |
+------+----------+---------+------+---------------+
5 rows in set (0.00 sec)

helpful