【SQL】NULL値のソートの順を指定する方法


ここでは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文の書き方:サンプル多数あり」で解説していますのでぜひ参考にしてください。