order by句で列を指定してソートすると、デフォルトではNULLのデータは最後にソートされます。
NULLのデータを最初に持ってきてソートしたい場合はorder by句で列指定後、
NULLS FIRST を指定するとNULLのデータが最初にselectされその後NOT NULLのデータがソートされます。
以下のようなデータがあるとします。
NULLS FIRTSTとNULLS LAST
上図のようなデータがあるとします。
このデータに対して以下のSQLを発行します。
select pn,order_no
from parts_tbl
order by order_no nulls first;
すると、検索結果は以下のようになります。
NULLS FIRTSTとNULLS LAST
逆にまずNOT NULLのデータをソートし、最後にNULLのデータを持ってきたい場合
NULLS LAST を指定して以下のSQLを発行します。
select pn,order_no
from parts_tbl
order by order_no nulls last;
すると、検索結果は以下のようになります。
NULLS FIRTSTとNULLS LAST
ちなみにNULLを先頭に持ってきてNOT NULLのデータは降順にソートしたい場合は以下のようなSQLを発行します。
select pn,order_no
from parts_tbl
order by order_no desc nulls first;
検索結果は以下のようになります。
NULLS FIRTSTとNULLS LAST