SQL server 2005 PIVOT运算符的使用

        PIVOT,UNPIVOT运算符是SQL server 2005支持的新功能之一,主要用来实现行到列的转换。本文主要介绍PIVOT运算符的操作,以及如何实现动态PIVOT的行列转换。

       关于UNPIVOT及SQL server 2000下的行列转换请参照本人的其它文章。

一、PIVOT的语法

二、PIVOT的使用例子

1. 静态PIVOT的用法
       为演示,从NorthWind数据库中提取一些记录生成新的Orders表,然后使用PIVOT将行转换到列。


2. 动态PIVOT的使用

   对该动态pivot增加汇总列

生成汇总列的注意事项;
    1->使用COALESCE函数生成列标题 。
    2->使用COALESCE函数生成带有SUM求和函数并且指定了别名的字符串。
    3->使用UNION对两个SELECT来实现联接。且将[Year]转换为字符串,因为YEAR(H.OrderDate)得值为 INT ,而''GrandTotal''为字符串,UNION 或UNION ALL使用时必须列的数量和类型相对应。

 

 

posted @ 2010-03-16 13:20  生活不是用来挥霍的  阅读(230)  评论(0编辑  收藏  举报