Oracle中的處理NULL值相關的幾個函數
最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!
我要咨詢Oracle中的處理NULL值相關的幾個函數,主要有:NVL,NVL2,NULLIF,COALESCE,這幾個函數用在各個類型上都可以。
下面簡單介紹一下幾個函數的用法。
在介紹這個之前你必須明白什么是oracle中的空值null
1.NVL函數
NVL函數的格式如下:NVL(expr1,expr2)
含義是:如果oracle第一個參數為空那么顯示第二個參數的值,如果第一個參數的值不為空,則顯示第一個參數本來的值。
例如:
SQL> 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
其中顯示-1的本來的值全部都是空值的
2 NVL2函數
NVL2函數的格式如下:NVL2(expr1,expr2, expr3)
含義是:如果該函數的第一個參數為空那么顯示第三個參數的值,如果第一個參數的值不為空,則顯示第二個參數的值。
SQL> select 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
上面的例子中。凡是結果是1的原來都為空,而結果是-1的原來的值就是不空。
3. NULLIF函數
NULLIF(exp1,expr2)函數的作用是如果exp1和exp2相等則返回空(NULL),否則返回第一個值。
select ename,comm,NVL2(comm,-1,1) from emp;
ENAME COMM NVL2(COMM,-1,1)
---------- ---------- ---------------
SMITH 1
ALLEN 300 -1
WARD 500 -1
JONES 1
MARTIN 1400 -1
BLAKE 1
CLARK 1
SCOTT 1
KING 1
TURNER 0 -1
ADAMS 1
JAMES 1
FORD 1
MILLER 1
4.Coalesce函數
Coalese函數的作用是的NVL的函數有點相似,其優勢是有更多的選項。
格式如下:
Coalesce(expr1, expr2, expr3….. exprn)
表示可以指定多個表達式的占位符。所有表達式必須是相同類型,或者可以隱性轉換為相同的類型。
返回表達式中第一個非空表達式,如有以下語句:
SELECT COALESCE(NULL,NULL,3,4,5) FROM dual 其返回結果為:3
如果所有自變量均為 NULL,則 COALESCE 返回 NULL 值。
COALESCE(expression1,...n) 與此 CASE 函數等價