脚本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
/*
说明:sql server如何通过pivot对数据进行行列转换
*/
create table #t
(
[员工工号] nvarchar(50),
[员工姓名] nvarchar(50),
[月份] nvarchar(50),
[工资] int
)
insert into #t
values (N '01' , N '张三' , N '2020年01月' , 2400)
,(N '02' , N '李四' , N '2020年01月' , 3000)
,(N '01' , N '张三' , N '2020年02月' , 2400)
,(N '02' , N '李四' , N '2020年02月' , 3000)
,(N '03' , N '王五' , N '2020年02月' , 5500)
,(N '01' , N '张三' , N '2020年03月' , 2400)
,(N '02' , N '李四' , N '2020年03月' , 1200)
,(N '03' , N '王五' , N '2020年03月' , 5500)
,(N '04' , N '赵六' , N '2020年03月' , 30000)
,(N '01' , N '张三' , N '2020年04月' , 3000)
,(N '03' , N '王五' , N '2020年04月' , 5500)
,(N '04' , N '赵六' , N '2020年04月' , 30000)
--行列转换前的源数据
select * from #t
--行列转换后的目标数据
select [员工工号], [员工姓名]
, [2020年01月], [2020年02月], [2020年03月], [2020年04月]
from #t D
pivot( max ([工资]) for [月份] in ([2020年01月], [2020年02月], [2020年03月], [2020年04月])) Q
order by [员工工号]
drop table #t
|
脚本运行结果:
总结
到此这篇关于sql server通过pivot对数据进行行列转换的方法的文章就介绍到这了,更多相关sql server pivot行列转换内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.cnblogs.com/zhang502219048/archive/2020/05/21/12933347.html