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使用时必须列的数量和类型相对应。