我一直在阅读很多关于SQL Pivots和Unpivots的内容,但我不确定如何解决我目前遇到的问题。
基本上,这是我的数据集。
ItemNumber | Category 1 | Category 2 | Category 3
00001 Books Children Beginner
00002 Games Adults Advanced
如何旋转此表以获得此结果?
ItemNumber | 00001 | 00002
Category 1 Books Games
Category 2 Children Adults
Category 3 Beginner Advanced
我正在阅读有关Unpivoting的内容,但看起来像Unpivoting在我的情况下不起作用。
会感激一些帮助。
答案 0 :(得分:2)
你可以使用它。
DECLARE @T TABLE ( ItemNumber VARCHAR(10), [Category 1] VARCHAR(10), [Category 2] VARCHAR(10), [Category 3] VARCHAR(10))
INSERT INTO @T VALUES
('00001','Books','Children','Beginner'),
('00002','Games','Adults','Advanced')
SELECT Col ItemNumber, [00001], [00002] FROM @T
UNPIVOT( Val FOR Col IN ([Category 1],[Category 2],[Category 3])) UNPVT
PIVOT (MAX(Val) FOR ItemNumber IN ([00001],[00002])) PVT
结果:
ItemNumber 00001 00002
------------------------ ---------- ----------
Category 1 Books Games
Category 2 Children Adults
Category 3 Beginner Advanced