转置SQL结果集

时间:2013-09-12 13:23:49

标签: sql sql-server-2008 pivot

我的数据格式如下:

Machine |  week_end  | widgets
 A      | 05-26-2013 | 5
 B      | 05-26-2013 | 4
 A      | 04-01-2013 | 6
 B      | 04-01-2013 | 0

我希望我的结果集如下所示:

Machine | 05-26-2013 | 04-01+2013 | ...
 A      | 5          | 6          |
 B      | 4          | 0          |

我不太清楚如何在这里继续 - 如何在不必在查询中明确指定周末(或其他)的情况下转换这样的表? (DB是SQL Server 2008。)

2 个答案:

答案 0 :(得分:2)

您需要对SQL PIVOT函数进行一些研究。它允许您将行转换为列。一旦你发现如何应用它,这应该是你正在寻找的。

点击此链接:Using PIVOT and UNPIVOT

答案 1 :(得分:1)

您可以使用动态数据透视表来执行此操作。这里有一个很好的例子:

SQL Server dynamic PIVOT query?