Oracle nvl ,nvl2 函式的用法

2021-09-01 15:42:35 字數 1509 閱讀 5435

nvl函式 oracle/plsql中的乙個函式。

格式為:

nvl( string1, replace_with)

功能:如果string1為null,則nvl函式返回replace_with的值,否則返回string1的值。

注意事項: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

oracle中:

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';
不會報錯

nvl的擴充套件-nvl2

oracle在nvl函式的功能上擴充套件,提供了nvl2函式。

nvl2(e1, e2, e3)
功能為:如果e1為null,則函式返回e3,若e1不為null,則返回e2。

Oracle nvl ,nvl2 函式介紹

oracle nvl nvl2 函式介紹 nvl函式 oracle plsql中的乙個函式。格式為 www.2cto.com nvl string1,replace with 功能 如果string1為null,則nvl函式返回replace with的值,否則返回string1的值。注意事項 st...

陣列函式2

2.陣列提取類 indexof 獲取指定元素的下標 第乙個引數 設定要查詢的元素 第二個引數 指定從哪乙個位置開始查詢 返回值是 如果沒有找到元素,則返回 1 如果找到元素,則返回元素所在的下標 特點 1.必須從指定的位置 第二個引數 開始查詢 2.如果不寫第二個引數,則預設從第一位開始查詢 3.第...

實驗2 函式

1.驗證性實驗 函式宣告和函式定義各自的作用,二者的區別 函式宣告的作用 檢查函式定義,函式呼叫時,引數,返回值,是否與宣告相同。函式定義的作用 在呼叫時尋找對應函式,執行操作。區別 函式宣告引入了乙個名字來代表乙個函式,並且可選的,指明函式的引數列表,可以出現在檔案作用域中。函式定義將函式體和函式...