PIVOT 提供的语法比一系列复杂的 SELECT...CASE 语句中所指定的语法更简单和更具可读性。有关 PIVOT 语法的完整说明,请参阅 FROM (Transact-SQL)。
以下是带批注的 PIVOT 语法。
SELECT <非透视的列>,
[第一个透视的列] AS <列名称>,
[第二个透视的列] AS <列名称>,
...
[最后一个透视的列] AS <列名称>,
FROM
(<生成数据的 SELECT 查询>)
AS <源查询的别名>
PIVOT
(
<聚合函数>(<要聚合的列>)
FOR
[<包含要成为列标题的值的列>]
IN ( [第一个透视的列], [第二个透视的列],
... [最后一个透视的列])
) AS <透视表的别名>
<可选的 ORDER BY 子句>;
参考资料:
http://technet.microsoft.com/zh-cn/library/ms177410.aspx
create table tb(Name varchar(10),Class varchar(10),Scoure int)
insert into tb values('张三','语文',74)
insert into tb values('张三','数学',83)
insert into tb values('张三','物理',93)
insert into tb values('李四','语文',74)
insert into tb values('李四','数学',84)
insert into tb values('李四','物理',94)
go
select*from tb
select * from tb
pivot ( Max(Scoure) for Class in ([语文],[数学],[物理]) ) a
转换后运行结果:
Name 语文 数学 物理
------ ----------- ----------- -----------
李四 74 84 94
张三 74 83 93
本文介绍如何使用PIVOT语法简化复杂的数据透视操作,相比传统的SELECT...CASE语句,PIVOT提供了更为简洁易读的方法。通过具体示例展示PIVOT语法的用法及其如何帮助整理和展示数据。
3067

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



