nvl()函式是oracle/plpgsql中的乙個函式,格式為:nvl(string1, replace_with)
功能:如果string1 位null,那麼nvl()函式返回replace_with的值,否則返回sting1的值。
注意:sting1和replace_with必須是同一資料型別,除非顯示的適用to_char函式。
例子:
nvl(to_char(some_numeric),』some string』) --其中some_numeric指某個資料型別的值。
例如:nvl(yan,0)>0
nvl(yan,0) 的意思是如果yan是null, 則取0值。
通過查詢獲得某個欄位的合計值,如果這個值為null,則給出乙個預設的 預設值(此處為0,也可以設定為其他值)。
例如:
select nvl(sum(t.dwx),1) from tb t ;
就表示如果sum(t.dwx) = null就返回1。
還有另一種有關的有用的方法:
declare i integerselect nvl(sum(t.dwx),1) into i from tb t where zx = -1;
以上把獲得的合計值儲存到變數i中,如果查詢的值為null就把它的值設定為1。
其他用法舉例如下:
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的資料.
nvl()的擴充套件-nvl2()
oracle在nvl()函式的功能上擴充套件,提供了nvl2()函式。
nvl2()(e1, e2, e3)的功能為:如果e1為null,則函式返回e3,若e1不為null,則返回e2。
本系列為最近一段時間學習oracle的學習筆記,記錄於此作為自身回顧,其中有的來的網路,有的來的書籍,但時間已久,記不清哪些是引用,如是**但沒標註出,特意致歉。
oracle 中建立表空間2
檢視觸發器 select create or replace trigger trigger name chr 10 decode substr trigger type,1,1 a after b before i instead of chr 10 triggering event chr 10...
oracle 2 oracle的使用者
1 dbca oracle的dbca主要用來管理資料庫,包括建立資料庫 刪除資料庫等。注意 建立資料庫的時候,密碼不能全是數字,也不能以數字開頭 2 ofa oracle flexible architecture oracle優化靈活結構 作用 多oracle版本的管理 ora90 資料庫管理工具...
Oracle中char和varchar2的區別
1.char的長度是固定的,而varchar2的長度是可以變化的,比如,儲存字串 abc 對於char 20 表示你儲存的字元將佔20個位元組 包括17個空字元 在資料庫中它是以空格佔位的,而同樣的varchar2 20 則只占用3個位元組的長度,20只是最大值,當你儲存的字元小於20時,按實際長度...