for
[<column that contains the values that will become column headers>] in ( [first pivoted column], [second pivoted column],
... [last pivoted column])
) as <alias for the pivot table>
<optional order by clause>;
语法解析
<non-pivoted column>
非聚合列。
[first pivoted column]第一列列名。
[second pivoted column]第二列列名。
[last pivoted column]最后一列列名。
<select query that produces the data>
数据子表。
<alias for the source query>
表别名。
<aggregation function>
聚合函数。
<column being aggregated>
聚合函数列,用于输出值列,最终输出中返回的列(称为分组列)将对其进行分组。
[<column that contains the values that will become column headers>]转换列,此列返回的唯一值将成为最终结果集中的字段。
[first pivoted column], [second pivoted column], … [last pivoted column]数据行中每一行行要转换的列名。
<optional order by clause>
排序规则。
示例
select b.Name,b.[android],b.[ios],b.[html5],b.[.net]from
(select Name,Project,Score from [test1].[dbo].[student])
as a
pivot
(
max(Score)
for Project in ([android],[ios],[html5],[.net])
)
as b
order by b.name desc示例结果
转换前

转换后

注意事项
1、如果输出列名不能在表转换列中,则不会执行任何计算。
2、输出的所有列的列名的数据类型必须一致。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对软件开发网的支持。
您可能感兴趣的文章:SQL Server将一列的多行内容拼接成一行的实现方法SQLServer行转列实现思路记录Sql Server 2000 行转列的实现(横排)sqlserver2005 行列转换实现方法sqlserver下将数据库记录的列记录转换成行记录的方法sqlserver 行列互转实现小结SQLServer行列互转实现思路(聚合函数)SQL Server行转列的方法解析










