ORACLE中NVL函式及問題解決

2021-10-02 06:20:16 字數 1255 閱讀 5391

從兩個表示式返回乙個非 null 值。 語法 nvl(expression1, expression2) 引數 expression1, expression2 如果 expression1 的計算結果為 null 值,則 nvl( ) 返回 expression2。如果 expression1 的計算結果不是 null 值,則返回 expression1。expression1 和 expression2 可以是任意一種資料型別。如果 expression1 與 expression2 的結果皆為 null 值,則 nvl( ) 返回 .null.。 返回值型別 字元型、日期型、日期時間型、數值型、貨幣型、邏輯型或 null 值。通是expression1,expression2還可以是select語句。

語法nvl(expression0, expression1,expression2) 引數 expression0,expression1, expression2 如果 expression0 的計算結果為 null 值,則 nvl( ) 返回 expression2。如果 eepression0 的計算結果不是 null 值,則返回 expression1。expression1和expression2型別不同的話,expression2會轉換為expression1的型別 返回值型別 字元型、日期型、日期時間型、數值型、貨幣型、邏輯型或 null 值

nullif (expr1, expr2) expr1與expr2相等返回null,不等則返回expr1 注意型別要一致 4.decode

decode (expression, search_1, result_1, search_2, result_2, ., search_n, result_n, default)

decode函式比較表示式和搜尋字,如果匹配,返回結果;如果不匹配,返回default值;如果未定義default值,則返回空值。

在提取相關資料是,呼叫了nvl函式,區別是nvl的兩個引數都是select語句,執行便報一列返回多值的錯誤:

此時,將兩個語句都進行排查後發現第二個引數中的select語句報的錯,於是乎將第乙個select語句修改為查詢結果不是null,結果還是報同樣的錯誤,反覆查詢多次,最後將第二個引數的select語句改為0,則執行正常,於是乎在折磨了近半個小時時,得出以下結論:

nvl函式兩個引數中任何乙個引數為select語句,在呼叫nvl函式時:先執行select語句後判斷時候為空

Oracle得Nvl函式 nvl 函式

nvl 函式 從兩個表示式返回乙個非 null 值。語法nvl eexpression1,eexpression2 引數eexpression1,eexpression2 如果 eexpression1 的計算結果為 null 值,則 nvl 返回 eexpression2。如果 eexpressi...

oracle中的nvl函式

格式為 nvl string1,replace with 功能 如果string1為null,則nvl函式返回replace with的值,否則返回string1的值,如果兩個引數都為null 則返回null。注意事項 string1和replace with必須為同一資料型別,除非顯式的使用to ...

Oracle中的NVL函式

oracle中函式nvl,nvl2,nullif,coalesce,這幾個函式用在各個型別上都可以。下面簡單介紹一下幾個函式的用法。1.nvl函式 nvl函式的格式如下 nvl expr1,expr2 含義是 如果oracle第乙個引數為空那麼顯示第二個引數的值,如果第乙個引數的值不為空,則顯示第乙...