nvl,空時的推斷和取值

2021-09-08 22:01:15 字數 1598 閱讀 3326

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的時候,表...