NULLIF
NULLIF 関数は、引数が等しい場合に NULL を戻します。等しくない場合は、最初の引数の値を戻します。
それぞれの引数のデータ・タイプには、互換性がなければなりません。
- 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 であると想定します。
結果として NULL 値が戻ります。SELECT NULLIF (:PROFIT + :CASH, :LOSSES ) FROM SYSIBM.SYSDUMMY1