SQL 转置数据

SQL to transpose data

我有一个名为 Forecast 的 table,如下所示:

Product_BK 有大约 80,000 条记录,而月份有 12 条。各州保持在 5 条不变。

如何编写查询以将数据转置为如下所示:

这是在 SQL 服务器上,不希望沿着动态查询路由进行。

感谢您的所有意见

您可以使用SQL服务器内置的UNPIVOT功能:

SELECT PRODUCT_BK, Month, State, Forecast
FROM
(SELECT * FROM Forecast_Table) t
UNPIVOT
(Forecast FOR State IN (SA_NT, QLD, VIC_TAS, WA, NSW_ACT)) AS fcst