こんにちは。たいら(@tairaengineer2)です。
この記事では、SQL ServerでORDER BYを複数のカラムに対してソートするやり方を解説します。
スポンサーリンク
- 前提条件
- ORDER BYとは
- 複数のカラムでORDER BYをする構文
- 複数のカラムでORDER BYをしたときの優先順
- 複数のカラムでORDER BYするやり方で解説に使うテーブル
- 複数のカラムでORDER BYしたサンプル1
- 複数のカラムでORDER BYしたサンプル2
- まとめ:ORDER BYを複数のカラムに対してソートしてみよう!
前提条件
この記事では、Microsoft SQL Server2017を使っています。
インストールの仕方は、下の記事をご参考ください。
ORDER BYとは
ORDER BYは、SELECTした結果のデータのソートをするときに使います。
ORDER BYについては、こちらの記事をご参考ください。
↑の記事では、ORDER BYを1つのカラムに対してのみ行っていました。
この記事では、少し応用編としてORDER BYで複数のカラムに対してソートします。
複数のカラムでORDER BYをする構文
基本的な構文は下記になります。
SELECT カラム1
,カラム2
,カラム3
,…
FROM テーブル名
ORDER BY ソートしたいカラム [ASCまたはDESC],
ソートしたいカラム [ASCまたはDESC],
…
複数のカラムでORDER BYをしたときの優先順
複数のカラムでORDER BYをしたときの優先度は、ORDER BYに宣言したカラムが近ければ近いほど優先されます。
つまり優先度はこんな感じになります。
では、実際に使ってみましょう!
複数のカラムでORDER BYするやり方で解説に使うテーブル
複数のカラムでORDER BYするやり方で解説に使うテーブルは、【Person】テーブルです。
id | name | age | job_change |
---|---|---|---|
1 | kei | 32 | Knigt |
2 | kiki | 32 | cook |
3 | apple | 10 | child |
4 | for | 10 | child |
↑のテーブルに対して、いろいろORDER BYしていきます!
複数のカラムでORDER BYしたサンプル1
SELECT [id]
,[name]
,[age]
,[job_change]
FROM [Test].[dbo].[Person]
ORDER BY [age] ASC,
[name] DESC
意味としては、ORDER BYで最初に宣言しているのがageなので、まずageのカラムで昇順にソートされます。
次に宣言しているnameのカラムで降順にソートされています。
結果は↓になります。
id | name | age | job_change |
---|---|---|---|
4 | for | 10 | child |
3 | apple | 10 | child |
2 | kiki | 32 | cook |
1 | kei | 32 | Knigt |
想定通りになりました!
複数のカラムでORDER BYしたサンプル2
SELECT [id]
,[name]
,[age]
,[job_change]
FROM [Test].[dbo].[Person]
ORDER BY [age] ASC,
[id] ASC
意味としては、ORDER BYで最初に宣言しているのがageなので、まずageのカラムで昇順にソートされます。
次に宣言しているidのカラムで昇順にソートされています。
結果は↓になります。
id | name | age | job_change |
---|---|---|---|
3 | apple | 10 | child |
4 | for | 10 | child |
1 | kei | 32 | Knigt |
2 | kiki | 32 | cook |
想定通りになりました!
スポンサーリンク
まとめ:ORDER BYを複数のカラムに対してソートしてみよう!
以上がORDER BYを複数のカラムに対してソートするやり方です。
まとめなので、やり方を振り返ります。
構文は下記です。
SELECT カラム1
,カラム2
,カラム3
,…
FROM テーブル名
ORDER BY ソートしたいカラム [ASCまたはDESC],
ソートしたいカラム [ASCまたはDESC],
…
複数のカラムに対してORDER BYしたときの優先順は、ORDER BYに近ければ近いほど優先度が高いです。
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
他にもSQL Serverについて記事を書いています。
良ければこちらもご参考ください。
【SQL Server】データベースのバックアップファイルを復元する方法を解説します
【SQL Server】大文字から小文字に変換するLOWER関数について解説します
【SQL Server】テーブルの列名を変更するsp_renameを解説します
今までブログで書いたSQL Serverの解説記事のまとめは、こちらをご参考ください。