1. 概述 :
SQL 当中的 PIVOT 关键字 , 是通过将 表达式 某一列中的唯一值转换为输出中的多个列来旋转表值表达式 , 并在必要时对最终输出的任何其余列值执行聚合 . (即 结果 行 转为 列 )
2. 语法结构 :
SELECT <非透视的列>,
[第一个透视的列],
[第二个透视的列],
...
[最后一个透视的列]
FROM
表名
PIVOT
(
<聚合函数>(<要聚合的列>)
FOR
[<包含要成为列标题的值的列>]
IN ( [第一个透视的列], [第二个透视的列],
... [最后一个透视的列])
) AS <透视表的别名>
<可选的 ORDER BY 子句>;
pivot (聚合函数(要聚合的列) for <要旋转为行的列> in (目标列)) as 目标表名
3. 示例 :
原数据结果
SELECT * FROM ##TEST
AS p -- 将选中的字段作为原表,对应的t表就是新表。
PIVOT(SUM(score) FOR project IN([语文],[数学],[英语])) AS t
转换之后的查询结果