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