PIVOT函数,行转列

PIVOT函数的格式如下:

PIVOT(<聚合函数>([聚合列值]) FOR [行转列前的列名] IN([行转列后的列名1],[行转列后的列名2],[行转列后的列名3],.......[行转列后的列名N])) <聚合函数>就是我们使用的SUM,COUNT,AVG等Sql聚合函数,也就是行转列后计算列的聚合方式。 [聚合列值]要进行聚合的列名 [行转列前的列名]这个就是需要将行转换为列的列名。 [行转列后的列名]这里需要声明将行的值转换为列后的列名,因为转换后的列名其实就是转换前行的值,所以上面格式中的[行转列后的列名1],[行转列后的列名2],[行转列后的列名3],......[行转列后的列名N]其实就是[行转列前的列名]每一行的值。

SELECT * FROM [StudentScores] /数据源/ AS P PIVOT ( SUM(Score/分数----行转列后 列的值/) FOR p.Subject/课程-----需要行转列的列/ IN ([语文],[数学],[英语],[生物]/列的值/) ) AS T

SqlServer PIVOT函数快速实现行转列,UNPIVOT实现列转行 - PowerCoder - 博客园 http://www.cnblogs.com/OpenCoder/p/6668882.html