見るためのデータベース・SQL データの並び順


エンジニアの方にとってみれば、SQL は使えてあたりまえかもしれませんが、営業や管理部の人からすれば魅惑の魔法といわれることもあります。 しかし非エンジニアの方でも SQL が使えた方がいいですし、 そのほうがエンジニアの作業も楽になります。

今回は、 SQL で取得できるデータの並び順を変更する方法について説明します。 データを見るのに必須ではないので、 急ぐ方はこの記事をとばしていただいても OK です。

データの並び順を考える

id の小さい順、 年齢の低い順、 身長の小さい順などのようにデータの並び順をそろえるにはどうしたらいいかを説明します。

今回も、前回と同じテーブルデータを考えてみましょう。

id email
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 の順に並べるには次のようにします。

ORDER BY で、 どのデータにもとづいて整列させるのかを指定しています。

id の逆順にするには DESC を付け加えます。

複数の条件で整列させる場合

次のようなテーブルでは、1つのカラム(列)だけでは1通りに並びが決まらないことがあります。

members テーブル
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通りに並びが決まります。

優先する並び順から ORDER BY の後に並べます。 逆順にする場合は、それぞれの後に DESC を書きます。

下の例は身長(height)と年齢(age)を逆順にした場合の SQL です。

補足

ORDER BY の後ろに何もつけない場合は ASC がつけられたものとみなされます。 ASC が昇順、 DESC が降順です。

次は 見るためのデータベース・SQL 検索条件 NOT, IN です。