SQL入門その11 - SELECT ... ORDER BY文によるデータの並べ替え

2013/11/29 00:19更新
TAGS: | SQL入門|ORDER BY|並べ替え|昇順|降順|ソート

SQLでは、データを問い合わせするにはSELECTコマンドを使います。通常SELECT文での問い合わせ結果のソート(並べ替え)はしていません。こうした検索内容を降順または昇順で並べ替えには、ORDER BYを使います。


SELECT ... ORDER BYを使用して問い合わせすると、データを列ごとに昇順または降順でソートすることができます。


SELECT ... ORDER BYの基本構文は、以下のようになります。

SELECT <列名1> [, 列名2 ...] FROM <テーブル名> [WHERE条件式など]
ORDER BY <列名1> [ASC, DESC] [, 列名2[ASC, DESC] ...]

※1: <>は必須、[]はオプション構文との意味です。
※2: ASC:昇順で並べ替え。無指定時、デフォルトはASCとなります。
※3: DESC:降順で並べ替え。


では、早速試しましょう。
※実際のテストはMySQLを使って行います。

仮に、次のようなテーブルUSER_MSTがあります:
ID NAME AGE
1   Mike 20
2   Jackson 21
3   Juli   22
4   Alam   22

単一列での並び替え(昇順:ASC)例:
AGEの昇順で表示します。
mysql>SELECT * FROM USER_MST ORDER BY AGE ASC;
+---------+---------+---------+
|   ID    |   NAME  |   AGE   |
+---------+---------+---------+
|   1     |   Mike  |   20    |
|   2     | Jackson |   21    |
|   3     |   Juli  |   22    |
|   4     |   Alam  |   22    |
+---------+---------+---------+
4 rows in set (0.00 sec)

mysql>
※キーワードASCを省略してもOK


単一列での並び替え(降順:DESC)例:
AGEの降順で表示します。
mysql>SELECT * FROM USER_MST ORDER BY AGE DESC;
+---------+---------+---------+
|   ID    |   NAME  |   AGE   |
+---------+---------+---------+
|   3     |   Juli  |   22    |
|   4     |   Alam  |   22    |
|   2     | Jackson |   21    |
|   1     |   Mike  |   20    |
+---------+---------+---------+
4 rows in set (0.00 sec)

mysql>

複数列での並び替え例:
AGEの降順、NAMEの昇順で表示します。
mysql>SELECT * FROM USER_MST ORDER BY AGE DESC, NAME ASC;
+---------+---------+---------+
|   ID    |   NAME  |   AGE   |
+---------+---------+---------+
|   4     |   Alam  |   22    |
|   3     |   Juli  |   22    |
|   2     | Jackson |   21    |
|   1     |   Mike  |   20    |
+---------+---------+---------+
4 rows in set (0.00 sec)

mysql>


その他関連記事


SQL入門その2 - データの問い合わせSELECT文の基本的な使い方

著者について
小魚+システム設計や開発、保守運営などを行ってます。オープンソース技術に興味があります。

Sponsored Link


コメント

記事への評価

USER LOGIN FIRST
メールアドレス:
パスワード: