Oracle NULLIF函数

Oracle NULLIF函数语法为NULLIF(表达式1,表达式2),如果表达式1和表达式2相等则返回空值,如果表达式1和表达式2不相等则返回表达式1的结果。

注意:表达式1和表达式2应该是相同数据类型或能隐含转换成相同数据类型,表达式1不能用字符null。

示例1:如果sal为888的则返回空
SQL> select a.ename,a.sal,nullif (sal,8888) value from emp a;
ENAME                       SAL      VALUE
-------------------- ---------- ----------
SMITH                        99         99
ALLEN                      8888
WARD                       8888
JONES                      8888
MARTIN                     8888
BLAKE                      8888
CLARK                      8888
SCOTT                       999        999
KING                       8888
TURNER                     8888
ADAMS                      8888
JAMES                      8888
FORD                       8888
MILLER                     8888
xiangyc                 9999.88    9999.88
已选择15行。
可以看到相等为空,不相等返回表达一。
示例2:
SQL> select nullif(3+5,8) value from dual;
VALUE
----------
示例3:证明第一表达式不能用字符null
SQL> select nullif(null,8) value from dual;
select nullif(null,8) value from dual
*

第 1 行出现错误:

ORA-00932: 数据类型不一致: 应为 -, 但却获得 CHAR