ここではORACLEデータベースのSQLで、レコードの並び替えを行ったときのNULL値の順序を指定する方法を紹介します。
NULL値の順序は、ORDREBY句の後ろにキーワードを追加することで指定することが出来ます。
SQLでデータをソートする方法について、基本的な内容は↓で解説していますので参考にしてください。
>>SQLのソート・並び替え(ORDER BY)
NULL値の順序を指定するSQLサンプル
NULLを先頭に表示する方法
ORDER BYの後に、NULLS FIRSTというキーワードを指定することで、NULL値を先頭に表示させることが出来ます。
昇順、降順どちらの場合にも先頭にくるようになります。
次のSQLでは、担当部門でレコードを並び替えするとき、NULL値のレコードを先頭にもってきます。
SELECT 顧客番号,担当部門,顧客名 FROM 顧客マスタ ORDER BY 担当部門 NULLS FIRST
顧客番号 | 担当部門 | 名前 |
0003 | NULL | 高橋 |
0001 | 10 | 鈴木 |
0004 | 10 | 鈴木 |
0002 | 20 | 田中 |
0003 | 20 |
高橋 |
NULLを最後に表示する方法
ORDER BYの後に、NULLS LASTというキーワードを指定すると、NULL値が最後に表示されます。
昇順、降順どちらの場合にも最後に表示されます。
SELECT 顧客番号,担当部門,顧客名 FROM 顧客マスタ ORDER BY 担当部門 DESC NULLS LAST
顧客番号 | 担当部門 | 名前 |
0002 | 20 | 田中 |
0003 | 20 | 高橋 |
0001 | 10 | 鈴木 |
0004 | 10 | 鈴木 |
0003 | NULL | 高橋 |
まとめ
SQLでNULL値のレコードを並び替えするときは、NULLSキーワードを指定することで、順序を指定することが出来ます。
NULLを先頭にする場合はNULLS FIRST、NULLを最後尾にする場合にはNULLS LASTを指定します。
この他にも、SELECT文には様々な機能や使い方があります。
詳しくは「【SQL】SELECT文の書き方:サンプル多数あり」で解説していますのでぜひ参考にしてください。