並び替えを行う ORDER BY句
問合せを行うと、1行から複数行の行が結果として出力されます。通常この行は、表にデータが挿入された順番に並んで表示されます。しかし、場合によっては並び順を変更したいこともあるでしょう。行の並び替えを行うことをソート(SORT)と呼びます。
ORDER BY句 : 書式
書式 ORDER BY <列名>
ORDER BY句 : 使用例
表:社員
名前 | 年齢 | 入社年度 |
---|---|---|
山田太郎 | 28 | 1998 |
佐藤花子 | 24 | 2000 |
小林守 | 35 | 1993 |
斉藤隆 | 39 | 1999 |
森毅 | 27 | 1999 |
高橋綾子 | 28 | 1999 |
上の表を、入社年度順に並べ替える場合に、ORDER BY句を使います。
SQL文
SELECT * FROM 社員 ORDER BY 入社年度;
SELECT * FROM 社員 ORDER BY 入社年度;
実行結果
名前 | 年齢 | 入社年度 |
---|---|---|
小林守 | 35 | 1993 |
山田太郎 | 28 | 1998 |
斉藤隆 | 39 | 1999 |
森毅 | 27 | 1999 |
高橋綾子 | 28 | 1999 |
佐藤花子 | 24 | 2000 |
「入社年度」列が小さい順に並べ替えられた結果が得られました。
昇順、降順を指定して並べ替える
何も指定せずに ORDER BY句を使うと、数字は文字コード番号の小さい順に並べることができます。小さい順に並ぶことを昇順といい、逆に大きい順に並ぶことを降順といいます。ORDER BY句では、どちらかの順にするかを指定できます。
ORDER BY句 : 書式
昇順と降順の使い分けは、次の2つのキーワードで指定することができます。
- ARC :昇順(小さいものから順に並べる)
- DESC :降順(大きいものから順に並べる)
書式 ORDER BY <列名> [ ARC | DESC ]
実際には、降順を指定するDESCキーワードを指定することが多いです。ORDER BY句に何も指定しなかった場合には昇順に並べられますから、「ARC」キーワードを指定するときは、そのSQL文が昇順を求めているということを明示するときです。
ORDER BY句 : 使用例
DESCキーワードを指定して、先ほど「入社年度」列で昇順に並べた表を、今度は降順で読み出してみましょう。
表:社員
名前 | 年齢 | 入社年度 |
---|---|---|
山田太郎 | 28 | 1998 |
佐藤花子 | 24 | 2000 |
小林守 | 35 | 1993 |
斉藤隆 | 39 | 1999 |
森毅 | 27 | 1999 |
高橋綾子 | 28 | 1999 |
SQL文
SELECT * FROM 社員 ORDER BY 入社年度 DESC;
SELECT * FROM 社員 ORDER BY 入社年度 DESC;
実行結果
名前 | 年齢 | 入社年度 |
---|---|---|
佐藤花子 | 24 | 2000 |
斉藤隆 | 39 | 1999 |
森毅 | 27 | 1999 |
高橋綾子 | 28 | 1999 |
山田太郎 | 28 | 1998 |
小林守 | 35 | 1993 |
結果を見ると、「入社年度」列の数字の大きなものから順番、つまり降順に並んでいることがわかります。
複数の列で並べ替えを指定する
ORDER BY句 : 書式
ORDER BY句で並べ替えをするときには、複数の列を指定して並べ替えることもできます。
書式 ORDER BY <列名1> [ ARC | DESC ], <列名2> [ ARC | DESC ] ・・・
複数の列をORDER BY句に指定すると、まず1番目に指定した列で並べ替えが行われ、次に2番目に指定した列で並べ替えが行われるといったように、順々に指定した列で並べ替えが行われます。
ORDER BY句 : 使用例
次の例では、まず「入社年度」列を昇順で並べ、次に「年齢」列を降順で並べ替えています。
表:社員
名前 | 年齢 | 入社年度 |
---|---|---|
山田太郎 | 28 | 1998 |
佐藤花子 | 24 | 2000 |
小林守 | 35 | 1993 |
斉藤隆 | 39 | 1999 |
森毅 | 27 | 1999 |
高橋綾子 | 28 | 1999 |
SQL文
SELECT * FROM 社員 ORDER BY 入社年度, 年齢 DESC;
SELECT * FROM 社員 ORDER BY 入社年度, 年齢 DESC;
実行結果
名前 | 年齢 | 入社年度 |
---|---|---|
小林守 | 35 | 1993 |
山田太郎 | 28 | 1998 |
斉藤隆 | 39 | 1999 |
高橋綾子 | 28 | 1999 |
森毅 | 27 | 1999 |
佐藤花子 | 24 | 2000 |
関連リンク
【SQL】 ORDER BY句の使い方(結果の並び順を指定する)
ORDER BY句は、指定した列の値により、問合せ結果を並び替えるものです。並べ替えのことをソート(SORT)と呼びます。問合せにおいて、一定の並べ方のデータが必要な場合には、ORDER BY句で結果の並べ方を指定します。
次の章へ進む
【SQLの基礎知識⑬】 出力結果をグループごとに集計する(GROUP BY・HAVING)
GROUP BY句は、指定した列の値に従ってデータをまとめる機能です。HAVING句は、それらの集計をさらに条件によって絞り込む機能です。この章では、出力結果をグループごと集計する基本テクニックを習得できます。いちれべ.comは、オラクル、MS-SQL、MS-Access で使用可能か一目でわかるサイトです。
目次
【SQLの基礎知識】基本ルールや基礎の基礎をマスターしよう
こちらの記事を読み進めることで、SQLの基礎が充分に身に付きます。これからSQLを身に着けたい初心者・入門者の方に最適です。データベース製品ごとに表現方法が異なることがありますので、ある程度SQLのスキルがある方も利用できるサイトです。