【发布时间】:2018-05-13 08:19:49
【问题描述】:
我有一个表格,可以连续返回月份的产品数量,例如:
[M02] | [M03] | [M04] | [M05] | [M06] | [M07] | [M08] | [M09] |[M10] | [M11] | [M12]
------------------------------------------------------------------------------------
120 | 65 | 75 | 587 | [78 | 5656 | 651 | 65 | 8949 | 89 | 596
现在我需要结果,因为 [这里我想将列替换为行并将它们的名称更改为我选择的别名] 例如从列到行的 M01 到一月
[Month] | [Count] |
----------------------
January | 120 |
February | 65 |
我知道我可以使用 UnPivot 运算符实现这一点,但我无法将月份名称设为一月,因为我无法在 unpivot 中设置别名
我写了这个查询
SELECT [Months],[Count]
FROM [TableName]
UnPivot(
[Count] for Months in ([M01]
,[M02]
,[M03]
,[M04]
,[M05]
,[M06]
,[M07]
,[M08]
,[M09]
,[M10]
,[M11]
,[M12])
) as unpiv
这给了我数据:
[Month] | [Count] |
----------------------
M01 | 120 |
M02 | 65 |
这里 M01、M02 等分别是月份,但我不能更改它们的名称。我怎样才能做到这一点?
【问题讨论】:
标签: sql sql-server database sql-server-2008 sql-server-2012