sql的nvl2
⑴ nvl、nvl2、nullif、coalesce函數的區別
NVL函數的格式如下:NVL(expr1,expr2)
含義是:如果oracle第一個參數為空那麼顯示第二個參簡笑數的值,如果第一個參數的值不為空,則顯示第一個參數本來的值。
例如:
sql> select ename,NVL(comm, -1) from emp;
NVL2函數的格式如下:NVL2(expr1,expr2, expr3)
含義是:如果該函數的第一個參數為空那麼顯沒咐纖示第二個參數的值,如果第一個參數枯仿的值不為空,則顯示第三個參數的值。SQL> select ename,NVL2(comm,-1,1) from emp;
NULLIF(exp1,expr2)函數的作用是如果exp1和exp2相等則返回空(NULL),否則返回第一個值。
下面是一個例子。使用的是oracle中HR schema,如果HR處於鎖定,請啟用
這里的作用是顯示出那些換過工作的人員原工作,現工作。
SQL> SELECT e.last_name, e.job_id,j.job_id,NULLIF(e.job_id, j.job_id) 「Old Job ID」
FROM employees e, job_history j
WHERE e.employee_id = j.employee_id
ORDER BY last_name;
Coalese函數的作用是的NVL的函數有點相似,其優勢是有更多的選項。
格式如下:
Coalesce(expr1, expr2, expr3….. exprn)
表示可以指定多個表達式的佔位符。所有表達式必須是相同類型,或者可以隱性轉換為相同的類型。
返回表達式中第一個非空表達式,如有以下語句: SELECT COALESCE(NULL,NULL,3,4,5) FROM al 其返回結果為:3
如果所有自變數均為 NULL,則 COALESCE 返回 NULL 值。 COALESCE(expression1,...n) 與此 CASE 函數等價:
這個函數實際上是NVL的循環使用,在此就不舉例子了。
⑵ oracle的nvl和nvl2是什麼函數,兩者區別是什麼呢
oracle的NVL函數的功能室如果oracle第一舉迅個參數為空那麼顯示第二個參數的值,如果第一個參數的值不為空,則顯示第一個參數本來的值。
NVL(E1, E2)的功能為:如果E1為NULL,則函數返回E2,否則返回E1本身。但此函數有一定局限,所以就有了NVL2函數。
NVL2函數的格式如下:NVL2(expr1,expr2, expr3)
含義是:如果該函數的第一個參數為空那麼顯示第二個參數的值,如果第一個參數的值不為空,則顯示第三個參數的值。
NVL2函數:Oracle/PLSQL中的一個函數,NVL2(E1, E2, E3)的功能為:如果E1為NULL,則函數返回E3,若E1不為null,則返回E2。
(2)sql的nvl2擴展閱讀:
NVL函數的功能是實現空值的轉換,根據第一個表達式的值是否為空值來返回響應的列名或表達式,主要用於對數據列上的空值進行處理,語法格式如:NVL( string1, replace_with)
如果第一個參數的值為空值,則好悄返回第正襪此二個參數的值,否則返回第一個參數的值。如果兩個參數的值都為空值,則返回空值。
第一個參數和第二個參數可以是任何類型的數據,但兩個參數的數據類型必須相同(或能夠由Oracle隱式轉換為相同的類型)。
參考資料來源:網路--nvl函數
⑶ SQL 如何根據不同條件取不同欄位
select case when A.a1<>'念並3' then B.b2 else A.a1 end ,case when B.b2 is null then B.b22 else B.b2 end from A left join B on A.a0=B.b0
(攔高消簡知以下都類似的了,我沒寫全了)
⑷ 資料庫中的 NVL() 方法怎麼用
1、nvl(exp1,exp2);作用是如果表達式灶大局exp1為空則返回exp2表達式,如果exp1表達式不為空則返回exp1表達式。
⑸ SQL中NVL函數
空值判斷函數
1、NVL(表達式A,表達式B)
如果表達式A為空值,NVL返回值為表達式B的值,否則返回表達式A的值。叢弊該函數的目的是把一個空值(null)轉換成一個實際的值。其表達式的值可以是數字型、字元型和日期型。但是表達式A和表達式B的數據類型必須為同一個類型。
例:
nvl(clue_num,0):如果clue_num為空豎鄭隱,則返回0;否則返回clue_num的值
2、NVL2(表達式A,表達式B,表達式余廳C)
如果表達式A為空,則返回表達式C的值;如果表達式A不為空,則返回表達式B的值。
例:
nvl(sex,0,1):如果sex為空,則返回1;否則返回0