文字列関数

[Oracle] 2つの値が等しい場合にNULLを返すSQL(NULLIF)

値を比較して等しい場合にNULLを取得

2つの値を比較して等しい場合のみNULLを取得するには、NULLIF関数を使用します。
なお、2つの値が等しくない場合は第1引数に指定した値を返します。

NULLIF(値1, 値2)

それではサンプルを見てみましょう。
以下のようなnumberテーブルがあります。

num1 num2
100 100
200 100

num1列とnum2列の値が等しい場合、NULLを返すSQLです。

上記を実行し、抽出された結果がこちらです。

NULLIF(num1, num2)
null
200

num1列とnum2列が同じ場合のみNULLが取得できています。
また、等しくない場合は第1引数に指定した値を返しているのもわかります。
 
 
以上が、2つの値を比較して等しい場合のみNULLを取得する関数「NULLIF」の使い方です。
ぜひ参考にしてみてください。