NULLを考える①(NULLIF関数)
データベースを扱う上で必ずと言っていいほどお世話になる「NULL」さん。何もないという意味ですが、C#などのプログラミング言語に比べると、SQLのNULLは少し「できる奴」だと個人的には思います。
ということで、NULLを扱う関数を全てではありませんが少し考えてまとめてみました。
今回はNULLIF関数です。
NULLIF関数は第一引数と第二引数が一致する場合NULLを返し、違う場合は一つ目の引数を返します。つまり、0かどうかを判断するようにすれば良いということになります。
--フィールド名の値が0の場合、NULLが返る NULLIF( [フィールド名] , 0) --フィールド名の値が100の場合、NULLが返る NULLIF( [フィールド名] , 100)
これはCASE文と動作的には全く一緒となります。
--フィールド名の値が0の場合、NULLが返る CASE WHEN [フィールド名] = 0 THEN NULL ELSE 0 END --フィールド名の値が100の場合、NULLが返る CASE WHEN [フィールド名] = 100 THEN NULL ELSE 0 END
NULLIF関数の方がスマートですよね。