Oracle 中 NULL判斷並替換

2022-02-28 05:17:56 字數 1559 閱讀 6956

在次之前先說乙個現象:

if '' is null then

dbms_output.put_line('結果: is null 這個可以判斷 空字串(''));

end if;

這段語句在oracle資料庫引擎中執行有輸出,說明在oracle資料庫中 xx變數 is null 這個可以判斷 空字串('') 的。

可用 nvl(), ifnull() ,coalesce(),decode() 函式

1.nvl()

從兩個表示式返回乙個非 null 值。

語法

nvl(eexpression1, eexpression2)

引數

eexpression1, eexpression2

如果 eexpression1 的計算結果為 null 值,則 nvl( ) 返回 eexpression2。如果 eexpression1 的計算結果不是 null 值,則返回 eexpression1。eexpression1 和 eexpression2 可以是任意一種資料型別。如果 eexpression1 與 eexpression2 的結果皆為 null 值,則 nvl( ) 返回 .null.。

返回值型別

字元型、日期型、日期時間型、數值型、貨幣型、邏輯型或 null 值

2.nullif()

如果兩個指定的表示式相等,則返回空值。

語法nullif ( expression1 , expression2 )

引數expression1, expression2

常量、列名、函式、子查詢或算術運算子、按位運算子以及字串運算子的任意組合。

返回型別與第乙個 expression1 相同。

nullif與decode

nullif(param,0)等效於decode(param,0,null,param):如果param為0,則返回null,否則返回param。

3.coalesce()

oracle coalesce函式語法為coalesce(表示式1,表示式2,...,表示式n),n>=2,此表示式的功能為返回第乙個不為空的表示式,如果都為空則返回空值。

注意:所有表示式必須為同一型別或者能轉換成同一型別。

4.decode()

decode(條件,值1,返回值1,值2,返回值2,...值n,返回值n,預設值)

該函式的含義如下:

if 條件=值1 then

return(返回值1)

elsif 條件=值2 then

return(返回值2)

......

elsif 條件=值n then

return(返回值n)

else

return(預設值)

end if

Velocity中如何判斷null

相信這個問題是很多使用velocity的朋友所經常碰到的,大家可能非常期望下面這樣的 能夠執行 if foo null end 實際上這段 會報錯。這是因為velocity中對null的支援比較特別。上說,判斷是否為null有下面幾種方法 1.if foo 判斷 foo為空,判斷非空為 if foo...

Velocity中如何判斷null

相信這個問題是很多使用velocity的朋友所經常碰到的,大家可能非常期望下面這樣的 能夠執行 if foo null end 實際上這段 會報錯。這是因為velocity中對null的支援比較特別。上說,判斷是否為null有下面幾種方法 1.if foo 判斷 foo為空,判斷非空為 if foo...

oracle中NULL值處理

1 nvl expr1,expr2 功能 1 expr1 expr2均不為null時,返回expr1 2 expr1 expr2均為null時,返回null 3 expr1為null,expr2不為null,返回expr2 4 expr1不為null,expr2為null,返回expr1。2 nvl...