一下函數式支持返回值類型 :
字符型、日期型、日期時間型、數值型、貨幣型、邏輯型或 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