基本语法
数据源 PIVOT(
列(匹配列的数据值 转换后为一行)
FOR
列(需要放到行标题的那一列,转换后为固定标题值) IN (列名称)
)
e.g
有数据:
UserNameSubjectScore
张三 语文80
张三 数学90
张三 英语70
张三 生物85
李四 语文80
李四 数学92
李四 英语76
李四 生物88
sql语句:
SELECT * FROM Table
PIVOT (
sum(Score) FOR subject
IN ([语文],[数学],[英语],[生物])
) AS T
结果:
UserName 语文 数学 英语 生物
李四 80 92 76 88
张三 80 90 70 85
--------------------------------------------------
但在大多数情况下,我们的数据源很有可能是表连接的结果,只需要做个简单转换即可
SELECT * FROM (
SELECT * FROM Table
left join .... ) P
PIVOT (
sum(Score) FOR subject
IN ([语文],[数学],[英语],[生物])
) AS T
联系客服