Table of Contents
エンジニアの方にとってみれば、SQL は使えてあたりまえかもしれませんが、営業や管理部の人からすれば魅惑の魔法といわれることもあります。 しかし非エンジニアの方でも SQL が使えた方がいいですし、 そのほうがエンジニアの作業も楽になります。
今回は、 SQL で取得できるデータの並び順を変更する方法について説明します。 データを見るのに必須ではないので、 急ぐ方はこの記事をとばしていただいても OK です。
データの並び順を考える
id の小さい順、 年齢の低い順、 身長の小さい順などのようにデータの並び順をそろえるにはどうしたらいいかを説明します。
今回も、前回と同じテーブルデータを考えてみましょう。
| id | |
|---|---|
| 1 | sample_1@mail.com |
| 2 | sample_2@mail.com |
| 3 | sample_3@mail.com |
| 4 | sample_4@mail.com |
| 5 | sample_5@example.com |
| 6 | sample_6@example.com |
| 7 | sample_7@example.com |
| 8 | sample_8@example.com |
| 9 | sample_9@example.com |
| 10 | sample_10@example.com |
結果を id の順に並べるには次のようにします。
|
1 2 3 4 5 |
SELECT id, name FROM users ORDER BY id |
ORDER BY で、 どのデータにもとづいて整列させるのかを指定しています。
id の逆順にするには DESC を付け加えます。
|
1 2 3 4 5 |
SELECT id, name FROM users ORDER BY id DESC |
複数の条件で整列させる場合
次のようなテーブルでは、1つのカラム(列)だけでは1通りに並びが決まらないことがあります。
| id | name | height | weight | age |
|---|---|---|---|---|
| 1 | Taro Yamada | 167 | 58 | 42 |
| 2 | Hana Futami | 154 | 48 | 42 |
| 3 | Katsuo Tanaka | 167 | 48 | 33 |
| 4 | Jun Hirose | 148 | 49 | 14 |
| 5 | Isao Kimoto | 173 | 62 | 37 |
このデータを身長(height)の順に並べる場合を考えましょう。 身長だけでは1通りに並び方が決まりません。 そこで、身長の順、身長が同じなら体重(weight)の順、体重も同じなら年齢(age)の順、年齢も同じならidの順に並ぶようにします。 最後に id の順にしているので、必ず1通りに並びが決まります。
|
1 2 3 4 5 6 7 8 9 10 11 |
SELECT id, name, height, weight, age FROM members ORDER BY height, weight, age, id |
優先する並び順から ORDER BY の後に並べます。 逆順にする場合は、それぞれの後に DESC を書きます。
下の例は身長(height)と年齢(age)を逆順にした場合の SQL です。
|
1 2 3 4 5 6 7 8 9 10 11 |
SELECT id, name, height, weight, age FROM members ORDER BY height DESC, weight, age DESC, id |
補足
ORDER BY の後ろに何もつけない場合は ASC がつけられたものとみなされます。 ASC が昇順、 DESC が降順です。
次は 見るためのデータベース・SQL 検索条件 NOT, IN です。