woo*_*gie 0 sql case sql-server-2008
我有一张没有关系的单人桌子.当fieldNameName为零长度字符串时,我需要Statewide在结果集中.否则,我需要该字段的值保持不变,例如:
请注意第二列中有"Statewide"和"countyName".countyName应该是实际存储在数据库中的原始值.
`countyName` `address`
blah blah
Jackson blah blah
Run Code Online (Sandbox Code Playgroud)
需要(两个示例中的第一行是列名)
countyName address
Statewide blah blah
Jackson blah blah
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的,你可以忽略这个例子中的其余字段
select case servicetype
when 'cr' then 'Community Resource'
when 'ed' then 'Education'
when 'fb' then 'Faith-based'
when 'me' then 'Medical Equipment'
when 'hc' then 'Health Care'
else 'Other'
end as serviceType
,case countyName
when '' then 'Statewide'
else 'countyname' end
,name
,physicaladdress
,city
,statelocation
,zip
,phone
,website
from main
order by countyName, servicetype, name
Run Code Online (Sandbox Code Playgroud)
尽管没有确切地说出你期望的结果,但我的猜测是你不想返回'countyname'的字面值.你想要的是列中的值.
所以尝试用......替换当前的case语句
,case countyName
when '' then 'Statewide'
else countyName end
Run Code Online (Sandbox Code Playgroud)
作为额外的安全网,您还可以NULL使用ISNULL... 来检查值.
,case ISNULL(countyName,'')
when '' then 'Statewide'
else countyName end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25864 次 |
| 最近记录: |