NULLIF 标量函数 (scalar function)

如果两个参数相等,NULLIF函数将返回空值;否则,它将返回第一个参数的值。

阅读语法图跳过可视化语法图NULLIF( 表达式, 表达式)

该模式是 SYSIBM。

这两个论点必须相互兼容。 参数可以是内置的,也可以是用户自定义的。 任何参数都不能是 BLOB、CLOB、DBCLOB 或 XML。 字符串和图形字符串参数与日期时间值兼容。 如需了解兼容性方面的更多信息,请参阅表1 中的兼容性矩阵。

如果字符串或图形字符串和数字参数混合,则字符串值将隐式转换为 DECFLOAT(34) 值。

结果的属性就是第一个参数的属性。

注意

语法替代方案:
使用 NULLIF(e1,e2) 的结果与使用 CASE 表达式相同:
   CASE WHEN e1=e2 THEN NULL ELSE e1 END

e1=e2 的计算结果为未知数,因为一个或两个参数为空时, CASE 表达式认为计算结果为非真。 在这种情况下,NULLIF将返回第一个参数的值。

示例

示例 1:
假设主变量 PROFIT 、CASHLOSSES 的数据类型为十进制,其值分别为 4500.00、 500.00 和 5000.00。 以下函数返回空值:
   NULLIF (:PROFIT + :CASH , :LOSSES)