SQL order by 並び順を指定する(ソート)

SQLのselect文のorder byで結果の並び順を指定するサンプルです。

目次

結果の並び順 昇順で並べる
  order byの指定を数値で行う
  降順で並べる

昇順で並べる

select * from テーブル名
(where 条件)
order by 項目名,項目名・・・;

select文の最後にorder byと並べたい項目を指定すると、結果は指定した項目の昇順で並びます。

以下の成績テーブルがあるとします。

SQL

上記テーブルからデータを取得するSQLにorder byを指定します。

select * from 成績
order by 国語

2行目は、order byを指定しています。
項目「国語」の値を昇順で並び替えます。

結果は、以下のとおりです。

国語の値が昇順で表示されました。

 

並び替えの項目が2つの場合

select * from 成績
order by 国語,数学;

項目の国語と数学の値を昇順にして並び替えます。

結果は、以下のとおりです。

国語の値が昇順になり、次に数学の値が昇順になります。

 

order byの指定を数値で行う

order byの指定は、項目名ではなく数値で行うことも可能です。

上記のテーブルで列の国語の昇順にする場合は以下のようにします。

select * from 成績
order by 2;

2行目の2は、テーブルの2つめの項目の「国語」を指します。

 

降順で並べる

select * from テーブル名
(where 条件)
order by 項目名 desc,(項目名 desc)・・・ ;

order byの項目にdescを使用すると指定した項目の降順で並びます。
降順にしたい項目が他にもある場合、その項目にもdescを追加します。

以下の成績テーブルがあるとします。

SQL

上記テーブルからデータを取得するSQLにorder byとdescを指定します。

select * from 成績
order by 国語 desc;

2行目は、order byとdescを指定しています。
項目「国語」を降順で並び替えます。

結果は、以下のとおりです。

国語の値が降順で表示されました。

 

並び替えの項目が2つの場合

select * from 成績
order by 国語 desc,数学 desc;

項目の国語と数学の値を降順にして並び替えます。

結果は、以下のとおりです。

国語の値が降順になり、次に数学の値が降順になります。

関連の記事

SQL in句 複数の値を条件にする
SQL like 前方一致、あいまい検索、エスケープ

△上に戻る