oracle/plsql中的乙個函式。 格式為: nvl( string1, replace_with) 功能:假設string1為null,則nvl函式返回replace_with的值,否則返回string1的值,假設兩個引數的都為null ,則返回null。 注意事項:string1和replace_with必須為同一資料型別,除非顯示的使用to_char函式。 例:nvl(to_char(numeric_column), 'some string') 當中numeric_column代指某個數字型別的值。 例:nvl(yanlei777,0) > 0 nvl(yanlei777, 0) 的意思是 假設 yanlei777 是null, 則取 0值 通過查詢獲得某個欄位的合計值,假設這個值為null將給出乙個預設的預設值 比如: select nvl(sum(t.dwxhl),1) from tb_jhde t 就表示假設sum(t.dwxhl) = null 就返回 1 還有乙個有關的實用方法 declare i integer select nvl(sum(t.dwxhl),1) into i from tb_jhde t where zydm=-1這樣就能夠把獲得的合計值儲存到變數 i中,假設查詢的值為null就把它的值設定為預設的1 orcale中: select nvl(rulescore,0) from zwjc_graderule where rulecode='fwtd'; 假設記錄中不存在rulecode ='fwtd'的資料.則查不出資料. select nvl(rulescore,0) into rule_score from zwjc_graderule where rulecode='fwtd';會報查不到資料的錯 select nvl(sum(rulescore),0) from zwjc_graderule where rulecode='fwtd'; 假設記錄中不存在rulecode ='fwtd'的資料.還是能夠得到一行列名為nvl(rulescore,0),值為0的資料. select nvl(sum(rulescore),0) into rule_score from zwjc_graderule where rulecode='fwtd'; 不會報錯oracle在nvl函式的功能上擴充套件,提供了nvl2函式。 nvl2(e1, e2, e3)的功能為:假設e1為null,則函式返回e3,否則返回e2。
oracle case when 及 select case when的使用方法
select col1, col2,
case
when col3 > 1 and col3 <2
then '1'
when col3 > 2 and col3 <3
then '2'
when col3 > 3 and col3 <4
then '3'
else '4'
end mylevel
from table1
注意點:
1、以case開頭,以end結尾
2、分支中when 後跟條件,then為顯示結果
3、else 為除此之外的預設情況,相似於高階語言程式中switch case的default,能夠不加
4、end 後跟別名
DB2中的NVL和NVL2函式
nvl函式是乙個空值轉換函式 nvl 表示式1,表示式2 如果表示式1為空值,nvl返回值為表示式2的值,否則返回表示式1的值。該函式的目的是把乙個空值 null 轉換成乙個實際的值。其表示式的值可以是數字型 字元型和日期型。但是表示式1和表示式2的資料型別必須為同乙個型別。實用例子 查詢某個員工年...
Oracle的nvl 和substr 方法
1 nvl arg,value 代表如果前面的arg的值為null那麼返回的值為後面的value,如果value也是null的話,返回null。2 substr kong startposition,length startposition如果為負數,表示起始位置從後往前,而此值為0或者1的時候,表...
Oracle的nvl 和substr 方法
1 nvl arg,value 代表如果前面的arg的值為null那麼返回的值為後面的value,如果value也是null的話,返回null。2 substr kong startposition,length startposition如果為負數,表示起始位置從後往前,而此值為0或者1的時候,表...