主要使用的是UNPIVOT语法将数据进行转换。
-- 创建一个临时表以存储原始数据
CREATE TABLE #SalesData (
SalesRep VARCHAR(50),
Jan INT,
Feb INT,
Mar INT
);
-- 插入数据
INSERT INTO #SalesData (SalesRep, Jan, Feb, Mar) VALUES
('Alice', 200, 150, 250),
('Bob', 300, 200, 280),
('Charlie', 250, 300, 320);
-- 使用 UNPIVOT 转换数据
SELECT SalesRep, Month, SalesAmount
FROM #SalesData
UNPIVOT (
SalesAmount FOR Month IN (Jan, Feb, Mar)
) AS Unpvt;
-- 清理临时表
DROP TABLE #SalesData;