SQL Server透视表(PIVOT语法的使用)

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

版权声明:本文为wangbin1008原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。