oracle中函式以前介紹的字串處理,日期函式,數學函式,以及轉換函式等等,還有一類函式是通用函式。主要有: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),否則返回第乙個值。
下面是乙個例子。使用的是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;
last_name job_id job_id old job id
----------------- ------- ------- -------
de haan ad_vp it_prog ad_vp
hartstein mk_man mk_rep mk_man
kaufling st_man st_clerk st_man
kochhar ad_vp ac_mgr ad_vp
kochhar ad_vp ac_account ad_vp
raphaely pu_man st_clerk pu_man
taylor sa_rep sa_man sa_rep
taylor sa_rep sa_rep
whalen ad_asst ac_account ad_asst
whalen ad_asst ad_asst
可以看到凡是employee。job_id和job_histroy.job_id相等的,都會在結果中輸出null即為空,否則顯示的是employee。job_id
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 函式等價:
這個函式實際上是nvl的迴圈使用,在此就不舉例子了。
oracle中的nvl函式
格式為 nvl string1,replace with 功能 如果string1為null,則nvl函式返回replace with的值,否則返回string1的值,如果兩個引數都為null 則返回null。注意事項 string1和replace with必須為同一資料型別,除非顯式的使用to ...
Oracle中的NVL函式
oracle中函式nvl,nvl2,nullif,coalesce,這幾個函式用在各個型別上都可以。下面簡單介紹一下幾個函式的用法。1.nvl函式 nvl函式的格式如下 nvl expr1,expr2 含義是 如果oracle第乙個引數為空那麼顯示第二個引數的值,如果第乙個引數的值不為空,則顯示第乙...
Oracle中的NVL函式
oracle中函式以前介紹的字串處理,日期函式,數學函式,以及轉換函式等等,還有一類函式是通用函式。主要有 nvl,nvl2,nullif,coalesce,這幾個函式用在各個型別上都可以。下面簡單介紹一下幾個函式的用法。在介紹這個之前你必須明白什麼是oracle中的空值null 1.nvl函式 n...