NULLIF 标量函数 (scalar function)
如果两个参数相等,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 、CASH 和 LOSSES 的数据类型为十进制,其值分别为 4500.00、 500.00 和 5000.00。 以下函数返回空值:
NULLIF (:PROFIT + :CASH , :LOSSES)
