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)
helpful
この記事は役に立ちましたか?