【初心者向け】SQLにおけるORDER BY(データの並び替え)を分かりやすく解説

プログラミング 公開日:
ブックマーク
【初心者向け】SQLにおけるORDER BY(データの並び替え)を分かりやすく解説
ORDER BY句は、SQLのSELECT文で取得したデータを並び替える際に使用します。ORDER BYはシンプルに使うことができますが、意外に奥が深く、利用機会も多いです。

ORDER BYとは?

ORDER BY句は、SQLのSELECT文で取得したデータを並び替える際に使用します。
ORDER BYはシンプルに使うことができますが、意外に奥が深く、利用機会も多いです。

基本構文は下記の通りです。

SELECT 列名1, 列名2, ...
FROM テーブル名
ORDER BY 列名1 [ASC|DESC], 列名2 [ASC|DESC], ...;
  • 列名:並び替えを行いたい列を指定します。
  • ASC:昇順(ascending)で並び替えを行います。指定しない場合はASCが適用されます。
  • DESC:降順(descending)で並び替えを行います。

では具体例を見てみましょう。

基本的な使い方

シンプルな並び替え

まずサンプルデータを作ります。

CREATE TABLE users(name varchar(100), age integer);

INSERT INTO users(name, age) values("田中 一郎", 30);
INSERT INTO users(name, age) values("田中 二郎", 25);
INSERT INTO users(name, age) values("田中 三郎", 15);
INSERT INTO users(name, age) values("田中 四郎", 15);

このテーブルに対して名前と年齢を取得し、年齢の昇順で並び替えるには、以下のクエリを実行します。

SELECT name, age 
FROM users 
ORDER BY age ASC;

このクエリを実行すると、

name	age
田中 三郎	15
田中 四郎	15
田中 二郎	25
田中 一郎	30

が返却され、年齢の若い順に取得できたことがわかります。

また年齢の降順で並び替えるには、以下のクエリを実行します。

SELECT name, age 
FROM users 
ORDER BY age DESC;

このクエリを実行すると、

name	age
田中 一郎	30
田中 二郎	25
田中 三郎	15
田中 四郎	15

が返却され、年齢の高い順に取得できたことがわかります。

複数列による並び替え

ORDER BY句では、複数の列を指定して並び替えることも可能です。

その場合、最初の列で並び替えられ、同じ値を持つ行は2番目の列で並び替えられるといった具合に、指定した順序で並び替えが行われます。

次のクエリは、名前と年齢を取得し、年齢の昇順で並び替えて、同じ年齢だった場合は、名前の降順で並び替えるクエリです。

SELECT name, age 
FROM users 
ORDER BY age ASC, name DESC;

このクエリを実行すると、

name	age
田中 四郎	15
田中 三郎	15
田中 二郎	25
田中 一郎	30

が返却され、年齢の若い順に並び替えた後、名前の降順に並び替えを行っていることがわかります。

応用的な使い方

LIMITとの組み合わせ

ORDER BY句は、LIMIT句と組み合わせて使用することがあります。

例えば、年齢が高い順に上位2人のユーザーを取得したい場合、下記のようなクエリを実行することで取得することができます。

SELECT name, age 
FROM users 
ORDER BY age DESC
LIMIT 2
;

また当然WHERE句を使うこともできるので、「30歳以上のユーザのうち、上位2人を取得する」といったことも、下記のようなクエリを実行することで取得することができます。

SELECT name, age 
FROM users 
WHERE age >= 30
ORDER BY age DESC
LIMIT 2;

最後に・・

いかがでしたでしょうか?

ORDER BY句は非常にシンプルでわかりやすいですが、利用機会も多いです。
誤った使い方をしないように、この記事を参考に実践していきましょう。

TECH PLAYでは、ITに関わる様々なイベント・勉強会・講演会・交流会・カンファレンス・セミナーなどの情報を集約し掲載しています。

テクノロジーと共に成長しよう、
活躍しよう。

TECH PLAYに登録すると、
スキルアップやキャリアアップのための
情報がもっと簡単に見つけられます。

面白そうなイベントを見つけたら
積極的に参加してみましょう。
ログインはこちら

タグからイベントをさがす