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

目次

サンプル 昇順で並べる
  order byの指定を数値で行う
  降順で並べる

昇順で並べる

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

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

 

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

seiseki
name kokugo suugaku eigo
suzuki 80 80 90
tanaka 70 90 95
sato 70 80 95

 

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

select * from seiseki
order by kokugo

2行目にorder byがあるので項目「kokugo」の値を昇順で並び替えます。

 

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

seiseki
name kokugo suugaku eigo
tanaka 70 90 95
sato 70 80 95
suzuki 80 80 90

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

 

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

select * from seiseki
order by kokugo,suugaku;

項目のkokugoとsuugakuの値を昇順にして並び替えます。

 

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

seiseki
name kokugo suugaku eigo
sato 70 80 95
tanaka 70 90 95
suzuki 80 80 90

kokugoの値が昇順になり、次にsuugakuの値が昇順になります。

 

order byの指定を数値で行う

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

 

select name,kokugo,suugaku,eigo from seiseki
order by 2;

order by 2の2は、2つめの項目の「kokugo」を指します。

 

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

seiseki
name kokugo suugaku eigo
tanaka 70 90 95
sato 70 80 95
suzuki 80 80 90

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

 

select name,suugaku,kokugo,eigo from seiseki
order by 2;

上記はkokugoとsuugakuの位置を交換しています。
この場合、2つめの項目のsuugakuの昇順になります。

 

降順で並べる

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

order byの項目にdescを使用すると指定した項目の降順で並びます。

降順にしたい項目が他にもある場合、その項目にもdescを追加します。

 

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

seiseki
name kokugo suugaku eigo
suzuki 80 80 90
tanaka 70 90 95
sato 70 80 95

 

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

select * from seiseki
order by kokugo desc;

2行目にorder byとdescがあるので項目「kokugo」を降順で並び替えます。

 

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

seiseki
name kokugo suugaku eigo
suzuki 80 80 90
sato 70 80 95
tanaka 70 90 95

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

 

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

select * from seiseki
order by kokugo desc,suugaku desc;

項目のkokugoとsuugakuの値を降順にして並び替えます。

 

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

seiseki
name kokugo suugaku eigo
suzuki 80 80 90
tanaka 70 90 95
sato 70 80 95

kokugoの値が降順になり、次にsuugakuの値が降順になります。

関連の記事

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

△上に戻る