天天看點

SQL Server 中ISNULL與NULLIF函數差別

SQL Server 中有兩個參數,文法:

    ISNULL(check_expression, replacement_value)

check_expression 與 replacement_value 資料類型必須一緻

    如果 check_expression 為 NULL,則傳回 replacement_value

如果 check_expression 不為 NULL,則傳回 check_expression

  NULLIF 用于檢查兩個表達式,文法:

    NULLIF(expression, expression)

select NULLIF((select id FROM mytable where id=33),2) 也可以的

    如果兩個 expression 相等,則傳回 NULL,該 NULL 為第一個 expression 的資料類型

    如果兩個 expression 不相等,則傳回第一個 expression

Sql Server中兩個判斷是否為空的函數NULLIF和ISNULL的說明如下:

NULLIF:需要兩個參數,如果兩個指定的表達式等價,則傳回null

例子:NULLIF(a,b)

說明:如果a和b是相等的,那麼傳回NULL,如果不相等傳回a

select NULLIF('eqeqweqwe','1') 結果是eqeqweqwe

select NULLIF(1,1) 結果是NULL

a和b的類型要一緻

ISNULL:需要兩個參數,目标是講null替換為指定的值,若第一個參數不為null,則傳回第一個參數

例子:ISNULL(a,b)

說明:如果a和b同時為NULL,傳回NULL,如果a為NULL,b不為NULL,傳回b,如果a不為NULL,b為NULL傳回a,如果a和b都不為NULL傳回a

select ISNULL(null,null)結果是null

select ISNULL(null,33)結果是33

select ISNULL('ddd',null)結果是ddd

select ISNULL(44,33)結果是44

isnumeric:确認表達式是否為有效的數字形式

sql