nvl

nvl

NVL是Oracle PL/SQL中的一個函式。它的格式是NVL( string1, replace_with)。它的功能是如果string1為NULL,則NVL函式返回replace_with的值,否則返回string1的值,如果兩個參數都為NULL ,則返回NULL。

定義

Oracle PL/SQL中的一個函式。

格式為:

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

NVL2

Oracle在NVL函式的功能上擴展,提供了NVL2函式。

NVL2(E1, E2, E3)的功能為:如果E1為NULL,則函式返回E3,否則返回E2。

相關詞條

相關搜尋

熱門詞條

聯絡我們