如何使用case语句捕获NULL值

时间:2010-01-18 09:53:00

标签: sql sql-server

在此查询中,我想用一些新值替换Adventureworks数据库的Person.Contact中的值。以下查询case语句适用于其他值,但我无法更改NULL值。我正在使用SQL Server。任何帮助表示赞赏。

select contactid,Title,FirstName,MiddleName,
case MiddleName
when 'R.' then 'Robert'
when 'B.' then 'Bids'
when 'J.' then 'John'
when is null then 'New Name'
else 'No Name'
end, LastName from Person.Contact

3 个答案:

答案 0 :(得分:16)

case 
when MiddleName is null then ...
when MiddleName = 'R' then ...
end

答案 1 :(得分:12)

我使用ISNULL函数 - 如果字段为NULL,它将返回给定的值:

select contactid,Title,FirstName,MiddleName,
case ISNULL(MiddleName, 'NULLVALUE')
when 'R.' then 'Robert'
when 'B.' then 'Bids'
when 'J.' then 'John'
when 'NULLVALUE' then 'New Name'
else 'No Name'
end, LastName from Person.Contact

答案 2 :(得分:2)

很抱歉发布7年后,但我一直在努力寻找Interbase / Firebird的解决方案,这个帖子一直在弹出。这里没有任何解决方案可行,因为没有ISNULL,所以我想我会帮助其他可能来这里寻找的人:

getFile