ORACLE内置函数大全补充(为空处理函数)

时间:2021-11-10 18:44:00

一下函数式支持返回值类型 :
字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值

1.COALESCE()
PS : COALESCE()函数是ASNI标准的SQL函数,MS SQL 和 Oracle 都可以用
用法 :
Oracle COALESCE函数语法为COALESCE(表达式1,表达式2,…,表达式n),n>=2,此表达式的功能为返回第一个不为空的表达式,如果都为空则返回空值。表达式的类型需要一致

如在 oracle 内置表 emp 中 , 如果 comm 字段值为空 , 则设置 new_comm 为200
select a.empno,a.ename,comm,coalesce(comm,200)new_comm from emp a;

EMPNO ENAME COMM NEW_COMM
---------- -------------------- ---------- ----------
7369 SMITH 200
7499 ALLEN 300 300
7521 WARD 500 500
7566 JONES 200
7654 MARTIN 1400 1400
7698 BLAKE 200
7782 CLARK 200
7788 SCOTT 200
7839 KING 200
7844 TURNER 0 0
7876 ADAMS 200

2.NVL(exp1,exp2)
如果 exp1 是空值 , 则返回 exp2 的值 , 如果 exp1 不是空值 , 则返回它本身 ; 注意表达式的值类型要一致
用法:

select ename,NVL(comm, -1) from emp;

ENAME NVL(COMM,-1)
------- ----
SMITH -1
ALLEN 300
WARD 500
JONES -1
MARTIN 1400
BLAKE -1
FORD -1
MILLER -1

3.NVL2(exp1,exp2,exp3)
如果 exp1 表示的值为空 , 则返回 exp2 的值 , 反之则返回 exp3 的值
用法:

elect ename,NVL2(comm,-1,1) from emp;

ENAME NVL2(COMM,-1,1)
------- -----
SMITH 1
ALLEN -1
WARD -1
JONES 1
MARTIN -1
BLAKE 1
CLARK 1
SCOTT 1