PIVOT操作可以将行数据转换为列数据,主要用于数据的交叉表查询,例如将销售数据按照不同的商品分类进行展示。UNPIVOT操作将列数据转换为行数据,主要用于对数据的透视操作,例如将财务报表中的不同科目数据展示在一列中。具体示例可参考以下代码片段:
-- PIVOT操作 SELECT * FROM ( SELECT product, month, revenue FROM sales ) t PIVOT ( SUM(revenue) FOR month IN ([Jan],[Feb],[Mar],[Apr],[May],[Jun],[Jul],[Aug],[Sep],[Oct],[Nov],[Dec]) ) p
-- UNPIVOT操作 SELECT product, month, revenue FROM ( SELECT [Jan],[Feb],[Mar],[Apr],[May],[Jun],[Jul],[Aug],[Sep],[Oct],[Nov],[Dec] FROM sales ) t UNPIVOT ( revenue FOR month IN ([Jan],[Feb],[Mar],[Apr],[May],[Jun],[Jul],[Aug],[Sep],[Oct],[Nov],[Dec]) ) p (month, revenue)