SQL

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

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 鈴木一郎 東京都 44 1
1002 佐藤次郎 埼玉県 32 1
1003 田中三郎 千葉県 24 2
1004 伊藤四郎 東京都 22 2
1005 斎藤五郎 東京都 55 4

スポンサーリンク

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

昇順で並び替え

「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)


チャンネル登録はこちら

フォローはこちら


よろしければ記事の評価をお願いします