SQL Server透视表(PIVOT语法的使用)
假设我们有一组数据,包含三列(StudentName,SubjectName,Score)
Select * From (
Values
('小明','语文',80),
('小明','数学',82),
('小明','英语',90),
('小丽','语文',77),
('小丽','数学',97),
('小丽','英语',69),
('小欣','语文',90),
('小欣','数学',89),
('小欣','英语',78)
) TempTable(StudentName,SubjectName,Score)
数据内容如下图

我们想要把这张列表变成横表如下图

SQL语句如下
SELECT StudentName,语文,数学,英语
FROM (
Values
('小明','语文',80),
('小明','数学',82),
('小明','英语',90),
('小丽','语文',77),
('小丽','数学',97),
('小丽','英语',69),
('小欣','语文',90),
('小欣','数学',89),
('小欣','英语',78)
) TempTable(StudentName,SubjectName,Score)
PIVOT (SUM(Score) FOR SubjectName IN ([语文],[数学],[英语])
) AS PivotTable ORDER BY StudentName

本文介绍了如何使用SQL Server的PIVOT语法将纵列数据转换为横表,通过实例展示了数据转换的过程,包括原始数据结构和转换后的目标格式。
3186

被折叠的 条评论
为什么被折叠?



