SQL将列转换为行
我读了很多关于SQL数据透视和UNPIVOT的书,但我不知道如何解决我目前遇到的问题 基本上,这是我的数据集SQL将列转换为行,sql,sql-server,tsql,pivot,unpivot,Sql,Sql Server,Tsql,Pivot,Unpivot,我读了很多关于SQL数据透视和UNPIVOT的书,但我不知道如何解决我目前遇到的问题 基本上,这是我的数据集 ItemNumber | Category 1 | Category 2 | Category 3 00001 Books Children Beginner 00002 Games Adults Advanced 如何旋转此表以获得此结果 ItemNumber | 00001 |
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
我读过关于取消激励的文章,但在我的案例中,似乎取消激励不起作用
非常感谢您的帮助。您可以用这个
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
可能重复的