Oracle NULLIF函数

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

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

示例1:如果sal为888的则返回空

  1. SQL> select a.ename,a.sal,nullif (sal,8888) value from emp a;
  2. ENAME                       SAL      VALUE
  3. -------------------- ---------- ----------
  4. SMITH                        99         99
  5. ALLEN                      8888
  6. WARD                       8888
  7. JONES                      8888
  8. MARTIN                     8888
  9. BLAKE                      8888
  10. CLARK                      8888
  11. SCOTT                       999        999
  12. KING                       8888
  13. TURNER                     8888
  14. ADAMS                      8888
  15. JAMES                      8888
  16. FORD                       8888
  17. MILLER                     8888
  18. xiangyc                 9999.88    9999.88
  19. 已选择15行。

可以看到相等为空,不相等返回表达一。

示例2:

  1. SQL> select nullif(3+5,8) value from dual;
  2. VALUE
  3. ----------

示例3:证明第一表达式不能用字符null

    1. SQL> select nullif(null,8) value from dual;
    2. select nullif(null,8) value from dual
    3. *
    4. 第 1 行出现错误:
    5. ORA-00932: 数据类型不一致: 应为 -, 但却获得 CHAR

转载至:http://blog.csdn.net/laoshangxyc/article/details/8648623

05-11 17:30