SQL Server - ORDER BY 句で null は最小値扱い
当たり前のことのようにそんなもんだと思っていたのですが、あらためて MSDN を読んでいるとちゃんと記述があったのでメモ。
引数の ASC | DESC のところを引用しておきます。
ASC | DESC
指定した列の値を昇順と降順のどちらで並べ替えるかを指定します。 ASC を指定した場合、最小値から最大値の順序で並べ替えられ ます。 DESC を指定した場合、最大値から最小値の順序で並べ替えられます。 ASC が既定の並べ替え順序です。 NULL 値は最小値として扱われます。
一応お試しクエリ。
select * from (values (1), (3), (-2147483648), -- intの最小値 (null), (0), (-1) ) as Temp(Value) order by Value; /* Value ----------- NULL -2147483648 -1 0 1 3 */