NULLS FIRTSTとNULLS LAST

order by句で列を指定してソートすると、デフォルトではNULLのデータは最後にソートされます。
NULLのデータを最初に持ってきてソートしたい場合はorder by句で列指定後、 NULLS FIRST を指定するとNULLのデータが最初にselectされその後NOT NULLのデータがソートされます。
以下のようなデータがあるとします。



上図のようなデータがあるとします。
このデータに対して以下のSQLを発行します。

select   pn,order_no
from     parts_tbl
order by order_no nulls first;
すると、検索結果は以下のようになります。



逆にまずNOT NULLのデータをソートし、最後にNULLのデータを持ってきたい場合 NULLS LAST を指定して以下のSQLを発行します。

select   pn,order_no
from     parts_tbl
order by order_no nulls last;
すると、検索結果は以下のようになります。



ちなみにNULLを先頭に持ってきてNOT NULLのデータは降順にソートしたい場合は以下のようなSQLを発行します。

select   pn,order_no
from     parts_tbl
order by order_no desc nulls first;
検索結果は以下のようになります。




初版2007/01/26 :最終更新2007/01/26
HOME