SYSTEM238 / NOTES1 / データベース / null値を考慮した並び替え

NOTES1 PROG1
null値を考慮した並び替え
並び替え順においてnull値を非null値の前にするか後にするかをORDER BYのパラメタで決定することができる

並び替え順においてnull値を非null値の前にするか後にするかをORDER BYのパラメタで決定することができます。

null値のデフォルトの並び順はデータベースによって違ったりします。null値があるカラムをソートする場合は以下のパラメタを指定しましょう。

PostgreSQLの場合

ORDER BY句で指定したカラムに続けて、NULLS FIRST / NULLS LASTを指定する。

//col1で昇順にしてnull値を最初に表示する
SELECT id, col1, col2 FROM table1 ORDER BY col1 NULLS FIRST;

//col1で降順にしてnull値を最後に表示する
SELECT id, col1, col2 FROM table1 ORDER BY col1 DESC NULLS LAST;

MySQLの場合

ORDER BY句でIS NULL ASC / IS NULL ASCを指定する。

//col1で昇順にしてnull値を最初に表示する
SELECT id, col1, col2 FROM table1 ORDER BY col1 IS NULL DESC, col1;

 //col1で降順にしてnull値を最後に表示する
SELECT id, col1, col2 FROM table1 ORDER BY col1 IS NULL ASC, col1 DESC;

Oracleの場合

PostgreSQLと同じ

その他

null値を置換する方法はnull値を置換するを参照してください。