NULLIF

NULLIF 関数は、引数が等しい場合に NULL を戻します。等しくない場合は、最初の引数の値を戻します。

構文図を読む構文図をスキップする
>>-NULLIF--(--expression-1--,--expression-2--)-----------------><

それぞれの引数のデータ・タイプには、互換性がなければなりません。
expression-1
DATALINK または XML 以外の任意の組み込みデータ・タイプ、あるいは DATALINK または XML に基づくもの以外の任意の特殊データ・タイプの値を戻す式。
expression-2
DATALINK または XML 以外の任意の組み込みデータ・タイプ、あるいは DATALINK または XML に基づくもの以外の任意の特殊データ・タイプの値を戻す式。

結果の属性は最初の引数の属性です。結果が、NULL になることもあります。最初の引数が NULL か、または両方の引数が等しい場合は、結果は NULL になります。

NULLIF(e1,e2) を使用した結果は、次の式を使用した結果と同じです。
  CASE WHEN e1=e2 THEN NULL ELSE e1 END

e1=e2 が未知であると評価された (引数の片方または両方が NULL であったため) 場合は、CASE 式はこれを真ではないと考えます。したがって、この場合は、NULLIF は第 1 オペランドの e1 を戻します。

  • ホスト変数 PROFIT、CASH および LOSSES は DECIMAL データ・タイプで、値がそれぞれ 4500.00、500.00 および 5000.00 であると想定します。
      SELECT NULLIF (:PROFIT + :CASH, :LOSSES )
        FROM SYSIBM.SYSDUMMY1
    結果として NULL 値が戻ります。