SQL语句之case函数
case函数的两种方式:
方式一:case简单函数
case 列值
when 值一 then 结果一
when 值二 then 结果二
....
else 结果三 end
方式二: case搜索函数
case
when 条件一 then 结果一
when 条件二 then 结果二
....
else 结果三 end
case函数描述:
case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略
case应用之一(行列置换):
置换前的效果
//deptid 表示的是部门的ID checkmethod表示检查方法(A,B,C)
select deptid,
checkmethod,
count(checkmethod)
from v_area_comp_info
where checkmethod is not null group by deptid,checkmethod
置换后的效果
select deptid,
sum(case when v.checkmethod = 'A' then 1 end) as A,
sum(case when v.checkmethod = 'B' then 1 end) as B,
sum(case when v.checkmethod = 'C' then 1 end) as C
from v_area_comp_info v
where checkmethod is not null group by deptid