行列不同分类的SQL SERVER展示
由于工作的需求,需要对行不同分类,列也不同分类,可以将行分类之后对列进行每列CASE WHEN 进行展示,但是这种方法太蠢了,而且代码不够简洁,因此网上寻找了行转列函数。
上最基础的做法:
select 部门,
CASE WHEN month(时间) = 1 THEN 1 ELSE 0 END as 1月份 ,
CASE WHEN month(时间) = 2 THEN 1 ELSE 0 END as 2月份 ,
sum(总数) as 总数
from tb
group by 部门,month(时间)
部门 1月份 2月份 总数
A 10 20 30
B 9 11 20
这种方法便于理解,但是不美观,且效率不高,因此有了PIVOT函数来进行转换。
贴上