我一直在阅读PIVOT上的一个UNPIVOT,但一直未能正确格式化结果来显示数据。这里是我的源表:使用PIVOT/UNPIVOT将行转换为列
StepID | ShortDesc | Type_1 | ar1 | ar2
1 ShortDesc1 10 11.11 11.01
2 ShortDesc2 20 22.22 22.02
3 ShortDesc3 30 33.33 33.03
4 ShortDesc4 40 44.44 44.04
5 ShortDesc5 50 55.55 55.05
这里是我想达到的效果:
| Step1 | Step2 | Step3 | Step4 | Step5
ShortDesc1 ShortDesc2 ShortDesc3 ShortDesc4 ShortDesc5
10 20 30 40 50
11.11 22.22 33.33 44.44 55.55
11.01 22.02 33.03 44.04 55.05
下面是最新的什么我都试过了,当然没有工作:
DROP TABLE ProductionTest
CREATE TABLE ProductionTest (StepID int, ShortDesc nvarchar(25), Type_1 int, ar1 real, ar2 real)
INSERT INTO ProductionTest VALUES (1, 'Short Desc 1', 10, 11.11, 11.01)
INSERT INTO ProductionTest VALUES (2, 'Short Desc 2', 20, 22.22, 22.02)
INSERT INTO ProductionTest VALUES (3, 'Short Desc 3', 30, 33.33, 33.03)
INSERT INTO ProductionTest VALUES (4, 'Short Desc 4', 40, 44.44, 44.04)
INSERT INTO ProductionTest VALUES (5, 'Short Desc 5', 50, 55.55, 55.05)
SELECT * FROM ProductionTest
SELECT [1]as Step1, [2] as Step2, [3]as Step3, [4]as Step4, [5]as Step5
FROM (SELECT [StepID], ShortDesc, Type_1, ar1, ar2
FROM ProductionTest) p
PIVOT (MAX(ShortDesc)
FOR StepID IN ([1], [2], [3], [4], [5])
) AS pvt
感谢您的帮助!
+1有用的DDL – 2010-09-10 17:06:28