试图找到一些简单的SQL Server PIVOT示例。我发现的大多数例子都涉及到对数字进行计数或求和。我只想旋转一些字符串数据。例如,我有一个查询返回以下内容。
Action1 VIEW
Action1 EDIT
Action2 VIEW
Action3 VIEW
Action3 EDIT
我想使用PIVOT (如果可能的话)来实现如下结果:
Action1 VIEW EDIT
Action2 VIEW NULL
Action3 VIEW EDIT
使用PIVOT功能可以做到这一点吗?
发布于 2008-09-02 19:55:19
请记住,MAX聚合函数将对文本和数字起作用。这个查询只需要扫描一次表。
SELECT Action,
MAX( CASE data WHEN 'View' THEN data ELSE '' END ) ViewCol,
MAX( CASE data WHEN 'Edit' THEN data ELSE '' END ) EditCol
FROM t
GROUP BY Action
发布于 2008-09-02 20:52:48
如果您特别想要使用SQL Server PIVOT函数,那么假设您的两个原始列分别称为act和cmd,则此函数应该可以工作。(虽然看起来不是那么漂亮。)
SELECT act AS 'Action', [View] as 'View', [Edit] as 'Edit'
FROM (
SELECT act, cmd FROM data
) AS src
PIVOT (
MAX(cmd) FOR cmd IN ([View], [Edit])
) AS pvt
发布于 2011-08-27 17:12:47
来自http://blog.sqlauthority.com/2008/06/07/sql-server-pivot-and-unpivot-table-examples/
SELECT CUST, PRODUCT, QTY
FROM Product) up
PIVOT
( SUM(QTY) FOR PRODUCT IN (VEG, SODA, MILK, BEER, CHIPS)) AS pvt) p
UNPIVOT
(QTY FOR PRODUCT IN (VEG, SODA, MILK, BEER, CHIPS)
) AS Unpvt
GO
https://stackoverflow.com/questions/24470
复制相似问题