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
在查询的时候,有这样的一个需求
数据库内容如下:
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
相关文章推荐
- CASE WHEN ELSE END的一个用法
- 16.03.18 【练习】case的用法 写一个脚本
- 一个超级无敌的switch case语句用法
- 一个SQL语句的用法。Case 用法
- case的一个比较特别的用法
- 发现了一个很高端的双层嵌套关键字用法
- iOS开发UI基础—21使用嵌套模型完成的一个简单汽车图标展示程序
- mysql CASE WHEN的基础和多种用法
- SQL条件控制(case when...then...else...end)用法描述
- shell脚本中case条件控制语句的一个bug分析
- 一个坑爹的问题:jsp中在js函数中嵌套java代码造成的问题
- oracle case when的用法
- C++ enum类型的一个更好的用法
- 用一个示例方法来初始理解ManualResetEvent的用法。
- 发现mysql一个用法,比较有用
- WPF中使用ItemsControl嵌套绑定,在ItemsControl中嵌套一个ItemsControl,然后使用绑定(2)
- touch一个目录及其下所有嵌套子目录中的文件
- Oracle CASE WHEN用法介绍
- sql case when then end 用法
- 探究SQL中Case语句用法