nvl、nvl2與nullif函式用法區別
NVL (expr1, expr2)->expr1為NULL,返回expr2;不為NULL,返回expr1。注意兩者的型別要一致
NVL2 (expr1, expr2, expr3) ->expr1不為NULL,返回expr2;為NULL,返回expr3。expr2和expr3型別不同的話,expr3會轉換為expr2的型別。
NULLIF (expr1, expr2) ->相等返回NULL,不等返回expr1。
如下例示:
點選(此處)摺疊或開啟
-
SQL> with t as
-
2 (select '1999' year, 3000 sales, 245 sales1
-
3 from dual
-
4 union all
-
5 select '2000', 2500, 2500
-
6 from dual
-
7 union all
-
8 select '2001', 4500, null
-
9 from dual
-
10 union all
-
11 select '2002', null, 1200
-
12 from dual
-
13 union all
-
14 select null, 1000, 1100 from dual)
-
15 select year,
-
16 nvl(sales, 0) nvl_s,
-
17 nvl(sales1, 0) nvl_s1,
-
18 nvl2(year, sales, sales1) nvl2_s,
-
19 nullif(sales, sales1) nullif_s
-
20 from t
-
21 order by 1;
-
-
YEAR NVL_S NVL_S1 NVL2_S NULLIF_S
-
---- ---------- ---------- ---------- ----------
-
-
1999 3000 245 3000 3000
-
2000 2500 2500 2500
-
2001 4500 0 4500 4500
-
2002 0 1200
-
1000 1100 1100 1000
-
- SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21251711/viewspace-1070490/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- nvl, nvl2, nullifNull
- [Developer] NVL,NVL2,NULLIF,COALESCE,DECADE,CASEDeveloperNull
- 【函式】oracle nvl2 函式函式Oracle
- Oracle-nvl和nvl2函式Oracle函式
- Oracle中處理空值的函式nvl-nvl2-lnnvl-nullif的用法Oracle函式Null
- to_date、to_char及格式化大小寫 nvl nvl2 nullifNull
- 新學一個函式nvl2(a,b,c)函式
- 【Oracle的NVL函式用法】Oracle函式
- StretchBlt函式和BitBlt函式的區別和用法函式
- 對遠端表使用NVL2的bug
- 箭頭函式與普通函式區別函式
- 建構函式與普通函式的區別函式
- 箭頭函式與普通函式的區別函式
- append()函式與html()函式的區別APP函式HTML
- 函式過載與函式模板的區別函式
- MySQL 的IFNULL()、ISNULL()和NULLIF()函式MySqlNull函式
- fill函式與memset函式的區別(c++)函式C++
- python內建函式-eval()函式與exec()函式的區別Python函式
- TypeScript 中函式的理解?與 JavaScript 函式的區別?TypeScript函式JavaScript
- JavaScript:鉤子函式與回撥函式的區別JavaScript函式
- closest()函式parent()函式的區別函式
- JavaScript函式宣告和函式表示式區別JavaScript函式
- 函式宣告和函式表示式的區別函式
- prop()函式和attr()函式的區別函式
- strcpy函式和memcpy函式的區別函式memcpy
- Python range與enumerate函式區別解析Python函式
- python函式與方法的區別總結Python函式
- 詳解not in與not exists的區別與用法
- 箭頭函式、簡寫函式、普通函式的區別函式
- Generator 函式的含義與用法函式
- jquery position()函式和offset()函式的區別jQuery函式
- # 普通函式和箭頭函式的區別函式
- [20170424]函式COALESCE優於NVL.txt函式
- TransparentBlt、StretchBlt與BitBlt三個函式的區別函式
- js中!和!!的區別與用法JS
- ARRAYLIST VECTOR LINKEDLIST 區別與用法
- JavaScript方法和函式區別JavaScript函式
- [20200213]函式nullif使用.txt函式Null