case when then else end
2012-08-27 18:16
561 查看
一、
(行遍历问题,面试)一道SQL语句面试题,关于group by
表内容:bs
bsrq res
2005-05-09 胜
2005-05-09 胜
2005-05-09 负
2005-05-09 负
2005-05-10 胜
2005-05-10 负
2005-05-10 负
二、查询
1、select case when condition then result [when....][else result] end。
case子句可以用于任何表达式可以有效存在的地方。condition是一个返回boolean的表达式。如果结果为真,那么case表达式的结果就是符合条件的result;如果结果为假,那么以相同方式搜寻任何随后的when子句。如果没有when condition为真,那么case表达式的结果就是在else子句里的值。如果省略了else子句而且没有匹配的条件,结果为null。
select bsrq,'胜'=sum(case when res='胜' then 1 else 0 end),
'负'=sum(case when res='负' then 1 else 0 end)
from bs group by bsrq
2、这个简单的case表达式是上面的通用形式的一个特殊的变种。
case expression when value then result [when] [else result] end
先计算expression的值,然后与所有在when子句里声明的value对比,直到找到一个相等的。如果没有找到匹配的,则返回在else子句里的result(或者null)。
select bsrq,'胜'=sum(case res when '胜' then 1 else 0 end),
'负'=sum(case res when '负' then 1 else 0 end)
from bs group by bsrq
(行遍历问题,面试)一道SQL语句面试题,关于group by
表内容:bs
bsrq res
2005-05-09 胜
2005-05-09 胜
2005-05-09 负
2005-05-09 负
2005-05-10 胜
2005-05-10 负
2005-05-10 负
二、查询
1、select case when condition then result [when....][else result] end。
case子句可以用于任何表达式可以有效存在的地方。condition是一个返回boolean的表达式。如果结果为真,那么case表达式的结果就是符合条件的result;如果结果为假,那么以相同方式搜寻任何随后的when子句。如果没有when condition为真,那么case表达式的结果就是在else子句里的值。如果省略了else子句而且没有匹配的条件,结果为null。
select bsrq,'胜'=sum(case when res='胜' then 1 else 0 end),
'负'=sum(case when res='负' then 1 else 0 end)
from bs group by bsrq
2、这个简单的case表达式是上面的通用形式的一个特殊的变种。
case expression when value then result [when] [else result] end
先计算expression的值,然后与所有在when子句里声明的value对比,直到找到一个相等的。如果没有找到匹配的,则返回在else子句里的result(或者null)。
select bsrq,'胜'=sum(case res when '胜' then 1 else 0 end),
'负'=sum(case res when '负' then 1 else 0 end)
from bs group by bsrq
相关文章推荐
- mysql中LOCATE和CASE WHEN...THEN...ELSE...END结合用法
- sql case when then else end
- MySQL case when then else end 用法
- MySql 中 case when then else end 的用法
- case when then else end
- SELECT CASE WHEN THEN ELSE END AS
- sql case when then else end
- oracle 截取字符(substr),检索字符位置(instr) case when then else end语句使用
- mysql中case..when..then..else..end的两种用法介绍
- SQL中的case when then else end用法
- 数据库 case when then else end 操作
- MySql 中 case when then else end 的用法
- SQL中的case when then else end用法
- hibernate分组与聚合查询(原生sql和使用case when then else end的hql)
- mysql case when then else end
- sql case when then else end sql_variant
- case when then else end
- case when then else end
- mysql case when then else end
- mysql操作查询结果case when then else end用法举例