UNPIVOT运算符相对于PIVOT运算符,它执行与PIVOT相反的操作,即将列转换到行。需要注意的是UNPIVOT运算符并不完全是PIVOT的逆向操作。因为执行PIVOT将会执行一次聚合,从而将多个可能的行合并为输出中的单个行。而 UNPIVOT 无法重现原始表值表达式的结果,因为行已经被合并了。另外,UNPIVOT 的输入中的空值不会显示在输出中,而在执行 PIVOT 操作之前,输入中可能有原始的空值。
关于PIVOT运算符的使用,请参考:SQL server 2005 PIVOT运算符的使用。
一、UNPIVOT的语法
二、UNPIVOT的使用例子
我们使用了SQL server 2005 PIVOT运算符的使用文章中的例子。如下所示,从NorthWind数据库生成数据源及PIVOT表。
1.静态UNPIVOT的用法
2.动态UNPIVOT的用法
三、总结
1.UNPIVOT操作符的第一个输入是保存被旋转属性值(Quantity)的目标列名称。
2.FOR关键字,指定保存被旋转列名称(Year)的目标列名称。
3.在IN子句的圆括号,指定要旋转的源列名称([1996],[1997],[1998])。
PIVOT运算符的使用,请参阅:http://blog.csdn.net/robinson_0612/archive/2010/03/16/5385117.aspx