sqlserver如何通过pivot对数据进行行列转换

database

脚本:

/*

说明:sql server如何通过pivot对数据进行行列转换

脚本来源:https://www.cnblogs.com/zhang502219048/p/12933347.html

*/

createtable #t

(

[员工工号]nvarchar(50),

[员工姓名]nvarchar(50),

[月份]nvarchar(50),

[工资]int

)

insertinto #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

orderby[员工工号]

droptable #t

脚本运行结果:

【转载请注明博文来源:https://www.cnblogs.com/zhang502219048/p/12933347.html】

 

以上是 sqlserver如何通过pivot对数据进行行列转换 的全部内容, 来源链接: utcz.com/z/533765.html

回到顶部