SQL Server函式之空值處理

2021-09-07 19:38:08 字數 1315 閱讀 4019

原文:

sql server函式之空值處理

coalesce( expression [ ,...n ] )返回其引數中第乙個非空表示式。

select coalesce(null,null,'1','2') //結果為 1

coalesce(expression1,...n) 與此 case函式等效:

case

when (expression1 is not null) then expression1

...when (expressionn is not null) then expressionn

else null

end

注意:當第乙個表示式為字串且不能轉化為整數時,若在後面的表示式中有整數,這樣的語句是會報錯的。

例如:select coalesce('a',null,'1',2) //這是錯誤的

這相當於

select 

case

when ('a' is not null) then 'a'

when (2 is not null) then 2

else null

end //會出現錯誤,因為系統無法將a轉換為相應的整數

但是select 

case

when ('a' is not null) then 'a'

when (2 is not null) then '2'

else null

end //這是正確的

所以我們在使用coalesce函式時,應該相當小心。

isnull( check_expression , replacement_value ) 使用指定的替換值替換 null。

replacement_value 必須是可以隱式轉換為 check_expresssion 型別的型別。

在表stu中

select isnull(s***,'p') from stu //若s***列中有null值,那麼返回p

nullif( expression , expression ) 如果兩個指定的表示式相等,則返回空值,否則 nullif 返回第乙個 expression 的值。

select nullif(1,1) //結果為 null

select nullif(1,2) //結果為 1

函式 COALESCE 函式處理空值

1.coalesce 函式介紹 這個函式主要用來進行空值處理,其引數格式如下 coalesce expression,value1,value2 valuen coalesce 函式的第乙個引數expression為待檢測的表示式,而其後的引數個數不定。coalesce 函式將會返回包括expres...

mysql空值函式 SQL NULL 函式

sql isnull nvl ifnull 和 coalesce 函式 請看下面的 products 表 p id productname unitprice unitsinstock unitsonorder computer printer telephone 假如 unitsonorder 是...

Sqlserver錶值函式

實現錶值函式很簡單 下面是乙個不帶輸入引數的錶值函式 createfunctiontvpoints returnstable as return select fromtb users 這個錶值函式數查詢所有使用者表的資料 對於多語句錶值函式,在 begin.end 語句塊中定義的函式體包含一系列 ...