Oracle PLSQL中的乙個函式 NVL函式

2021-06-18 03:53:39 字數 1359 閱讀 2835

格式為:

nvl( string1, replace_with)

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

引申一下,此nvl的作用與sqlserver 中的 isnull( string1, replace_with) 一樣。

注意事項: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) rule_score from zwjc_graderule where rulecode='fwtd';

不會報錯

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

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

Oracle PL SQL中的迴圈處理

oracle pl sql中的迴圈處理 今天來說下oracle中的迴圈迭代處理,因為從自己的部落格統計中看到,不少都搜尋了關鍵字 sql for迴圈 所以打算在這裡說下個人的理解。www.2cto.com pl sql也和我們常用的程式語言一樣,提供了while for等迴圈,我們建幾個例子來說明演...

TOMCAT中的乙個問題

這兩天在客戶端部署bo報表系統遇到乙個奇怪問題,tomcat啟動面板打出來的日誌資訊埠號為8181,但我在server.xml檔案裡面已經將埠號改為了8107,但為什麼會是8181呢!真是一頭霧水。用ue在tomcat目錄下所有檔案裡面都搜了一遍字元為 8181 的檔案,但乙個也找不到。這個8181...

qt中的乙個問題

1 這是我在看qt的乙個pdf的時候遇到的問題。如下 mydlg my1 if my1.exec qdialog accepted 其中在my1上有乙個button,w為乙個widget,button的clicked訊號,對應了my1的recept 槽。剛學qt死活看不懂這句話 現在好像大概明白了點...