1. 程式人生 > >Oracle null判斷並替換空值

Oracle null判斷並替換空值

href 算術運算符 lsi esc oralce spa expr 第一個 oracle

可用 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

參考:https://www.2cto.com/database/201303/193911.html

ORACLE中DECODE的用法(例子)

Oracle的NVL函數用法

用 ISNULL(), NVL(), IFNULL() and COALESCE() 函數替換空值

Oracle null判斷並替換空值