SQLServer2008 关于CASE WHEN
2016-03-11 14:48
369 查看
CASE WHEN的两种格式
1.简单Case函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
2.Case搜索函数
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
1).两者相比,Case搜索函数功能更强。
2).Case函数类似于if……else if 语句,只返回第一个符合条件的值,之后的部分会被忽略
例子:(按照指定规则分组,并计算每组人数)
create table #temp
(
country varchar(100),
people int
)
insert into #temp
select 'A',400 union all
select 'B',2890 union all
select 'C',3490 union all
select 'D',5678 union all
select 'E',457 union all
select 'F',2345
select
CASE WHEN country='A' or country='B' THEN '1组'
WHEN country='C' or country='D' THEN '2组'
WHEN country='E' or country='F' THEN '3组'
END 组别,SUM(people) 人数合计
from #temp
group by
CASE WHEN country='A' or country='B' THEN '1组'
WHEN country='C' or country='D' THEN '2组'
WHEN country='E' or country='F' THEN '3组'
END
ps.
Order by 后也可使用Case when 用于筛选需要的排序数据
Example:
order by case when ISNULL(A.ReqDate,'')!='' then A.ReqDate else A.PlanReqDate end desc
1.简单Case函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
2.Case搜索函数
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
1).两者相比,Case搜索函数功能更强。
2).Case函数类似于if……else if 语句,只返回第一个符合条件的值,之后的部分会被忽略
例子:(按照指定规则分组,并计算每组人数)
create table #temp
(
country varchar(100),
people int
)
insert into #temp
select 'A',400 union all
select 'B',2890 union all
select 'C',3490 union all
select 'D',5678 union all
select 'E',457 union all
select 'F',2345
select
CASE WHEN country='A' or country='B' THEN '1组'
WHEN country='C' or country='D' THEN '2组'
WHEN country='E' or country='F' THEN '3组'
END 组别,SUM(people) 人数合计
from #temp
group by
CASE WHEN country='A' or country='B' THEN '1组'
WHEN country='C' or country='D' THEN '2组'
WHEN country='E' or country='F' THEN '3组'
END
ps.
Order by 后也可使用Case when 用于筛选需要的排序数据
Example:
order by case when ISNULL(A.ReqDate,'')!='' then A.ReqDate else A.PlanReqDate end desc
相关文章推荐
- SQLServer int转float
- SQLServer 添加序号列
- SQLServer 行转列,统计,二次分组
- SQLServer Union 和 Union All 在Insert 语句中的不同效果
- SQLServer inner join,left join,right join,outer join 备忘备忘
- 数据库基础
- SQL杂记
- SQLServer修改表字段时进行表连接
- jdbc通过配置文件连接数据库
- Sybase 动态改变存储过程里查询的数据库
- SQL大全
- 解决MySql Command Line Client查询结果乱码问题
- spring-date-mongodb-1.0.0.M2 添加用户密码验证
- Oracle-基本SQL语句
- PHP+shell脚本操作Memcached和Apache Status的实例分享
- mysql found_rows函数
- Redis 是什么?
- mysql中 show index from tb_name命令各列的含义
- Redis安装部署
- 黄聪:MYSQL使服务器内存CPU占用过高问题的分析及解决方法