我如何将此表格展开或展平

时间:2013-10-01 10:53:13

标签: sql sql-server unpivot

我的sqlserver数据库中有以下表格:

   FiguresYear FiguresMonth Apple Orange Banana Grape
    2012        Jan          10    12     15     20
    2013        Jan          1     2      3      5

我想运行一个返回以下格式的查询:

FiguresYear FiguresMonth FruitName FruitValue
2012        Jan          Apple     10
2012        Jan          Orange    12
2012        Jan          Banana    15
2012        Jan          Grape     20
2013        Jan          Apple     1
2013        Jan          Orange    2
2013        Jan          Banana    3
2013        Jan          Grape     5

我正在尝试使用unpivot功能,但不能让它工作。有没有人知道如何使用或不使用unpivot?

1 个答案:

答案 0 :(得分:0)

像这样:

SELECT *
FROM tablename AS t
unpivot
(
  FruitValue
  FOR FruitName IN([Apple], [Orange], [Banana], [Grape])
) AS u;