您的位置:首页 > 其它

case的一个用法--case 嵌套

2009-12-01 16:36 323 查看
在工作中,有如下需求.通过case的嵌套解决了此问题!特此记录一下!(我用的是sql server 2005)

在查询的时候,有这样的一个需求
数据库内容如下:
iD description

1 TableClassA.getName()
2 TableClassB.getName(),exception
3 TableClassC,getName()
4 TableClassD,getName().null

我想查询输入以下结果:
iD description

1 TableClassA
2 TableClassB
3 TableClassC
4 TableClassD
及查询的结果是.号或,前的内容
SQL如下

select id,
case
when (CHARINDEX(',',description)>0) and (CHARINDEX('.',description)>0)
then --在这个做了判断,如同时包含.和,则判断.和,那个在前
case
when CHARINDEX(',',description)>CHARINDEX('.',description) then left(description,CHARINDEX('.',description)-1)
when CHARINDEX(',',description)<CHARINDEX('.',description) then left(description,CHARINDEX(',',description)-1)
end
when (CHARINDEX(',',description)>0) then left(description,CHARINDEX(',',description)-1)
when (CHARINDEX('.',description)>0) then left(description,CHARINDEX('.',description)-1)
else description
end
as description
from tablename
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: