在这个查询中,我想用一些新的值替换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
GSe*_*erg 16
case
when MiddleName is null then ...
when MiddleName = 'R' then ...
end
Run Code Online (Sandbox Code Playgroud)
mar*_*c_s 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
Run Code Online (Sandbox Code Playgroud)
小智 5
很抱歉 7 年后才发帖,但我一直在尝试寻找 Interbase / Firebird 的解决方案,而这篇文章不断出现。这里的解决方案都不起作用,因为没有 ISNULL,所以我想我会帮助其他可能来这里寻找这个问题的人:
select contactid,Title,FirstName,MiddleName,
case COALESCE(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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
53534 次 |
最近记录: |