"Oracle Database Programming Guide" 13-05: null correlation function (NULL-Related Functions)

1. Definitions

Related functions helps to handle null null.

Null-related functions are:

2, classification

  • NVL
    assess any data type column or expression is not null. If the original type is null, a non-null value is returned, alternative types; otherwise, return to the original key;
  • NVL2
    assess any data type column or expression is not null. If the original type is null, a non-null value is returned, alternative types; otherwise, return null alternative type;
  • NULLIF
    test for equality of two. If they are equal, the function returns a null value, otherwise the first two test item;
  • LNNVL
  • NANVL
  • COALESCE
    function returns the first non-null value from the argument list. If all parameters is null, then return null;

3, Case Code

/*
作者:AT阿宝哥
日期:2016年9月18日
愿景:参考官方资料,做最好的课程,成就更多职业人!
邮箱:[email protected]
CSDN:https://blog.csdn.net/goldentec
简书:https://www.jianshu.com/u/8a6075d7a2e0
说明:

注意:
    
*/
-------------------------------------------------------------------------------
--Demo1:NVL函数,语法:NVL(original,ifnull)
SELECT nvl(1234) FROM  dual;  --出错,参数个数无效

SELECT nvl(NULL,1234) FROM  dual;
SELECT nvl(1234,NULL) FROM  dual;


SELECT nvl(mgr,0) FROM emp;--实际案例
-------------------------------------------------------------------------------
--Demo2:NVL2函数,语法:NVL(original,ifnotnull,ifnull)
SELECT nvl2(NULL,1234) FROM  dual;--出错,参数个数无效
SELECT nvl2(NULL,1,1234) FROM  dual;
SELECT nvl2(1234,1,5678) FROM  dual;
SELECT nvl2( 897, 12, 'a string') FROM  dual; --出错,类型不匹配。
SELECT nvl2( 897, 12, 88) FROM  dual; --成功,类型匹配。

--实际案例
SELECT nvl2(ename ,'Name为不为空', 'Name为空') FROM emp;
SELECT nvl2(ename ,job, 'Name为空') FROM emp;
-------------------------------------------------------------------------------
--Demo3:NULLIF函数,语法:NULLIF(ifunequal,comparison_term)
SELECT  NULLIF(1234, 1234)  FROM  dual;
SELECT  NULLIF(1234, 5678)  FROM  dual;

SELECT  NULLIF('21-9月-2016', '20-9月-2016')  FROM  dual;  --注意,这是字符串比较
SELECT  NULLIF(SYSDATE + 1, SYSDATE)  FROM  dual; 
SELECT  NULLIF(SYSDATE + 1, '20-9月-2016')  FROM  dual;  --出错,类型不匹配

--实际案例
select  NULLIF(deptno,30)  from  emp;
-------------------------------------------------------------------------------
--Demo4:COALESCE函数,语法:COALESCE(expr1,expr2,...exprn)
SELECT COALESCE(NULL,NULL)  FROM dual;
SELECT COALESCE(NULL,'OK')  FROM dual;
SELECT COALESCE(NULL,NULL,NULL,'OK')  FROM dual;
SELECT COALESCE('GOOD',NULL,NULL,'OK')  FROM dual;
SELECT COALESCE(substr('abc',4)  , 'Not bc'  ,'No substring')  FROM  dual;

--实际案例
SELECT COALESCE(ename ,job) FROM emp;
-------------------------------------------------------------------------------

Published 48 original articles · won praise 49 · views 9627

Guess you like

Origin blog.csdn.net/goldentec/article/details/104802560