佐々木屋

技術的なことから趣味まで色々書きます

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関数の方がスマートですよね。