1. 程式人生 > >Oracle null判斷並替換空值 ORACLE中DECODE的用法(例子) Oracle的NVL函式用法 用 ISNULL(), NVL(), IFNULL() and COALESCE() 函式替換空值

Oracle null判斷並替換空值 ORACLE中DECODE的用法(例子) Oracle的NVL函式用法 用 ISNULL(), NVL(), IFNULL() and COALESCE() 函式替換空值

  可用 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() 函式替換空值