SQL ORDER BY句で取得したデータを並び替える
「社員マスタ」と「部署マスタ」というテーブルがあります。
社員コード | 社員名 | 部署コード | 年齢 |
---|---|---|---|
1 | テスト社員1 | 1 | 22 |
2 | テスト社員2 | 1 | 30 |
3 | テスト社員3 | null | 20 |
4 | テスト社員4 | 2 | 30 |
部署コード | 部署名 |
---|---|
1 | 開発部 |
2 | 営業部 |
全社員の社員名、部署名、年齢を年齢の降順に表示したい。年齢が同じ場合は社員コードの昇順で表示したい。
SQL
は下記のようになります。
SELECT T1.社員名
,T2.部署名
,T1.年齢
FROM 社員マスタ AS T1
LEFT JOIN 部署マスタ AS T2
ON T1.部署コード = T2.部署コード
ORDER BY T1.年齢 DESC, T1.社員コード
社員名 | 部署名 | 年齢 |
---|---|---|
テスト社員2 | 開発部 | 30 |
テスト社員4 | 営業部 | 30 |
テスト社員1 | 開発部 | 22 |
テスト社員3 | null | 20 |
取得するデータを並び替えるには、ORDER BY句でソートしたいカラムを指定します。
昇順で並び替えたい場合はカラム名のあとにASC
、降順に並び替えたい場合はDESC
と指定します。
デフォルトは昇順なのでカラム名のあとに何も指定しない場合は昇順でソートされます。
カンマ区切りで複数のカラムを指定することができます。1番目のカラムの値が同じだった場合は、2番目のカラムでソートされます。