这可能非常简单,但我无法理解它。 SQL 服务器 2008。 我有以下内容:
SELECT userId, accesslevel
FROM accesscontrol.dbo.BADGELINK
我得到的结果是
user id accesslevel
72 1
72 5
72 9
89 1
89 4
91 9
91 11
我想要的是
user id acesslevels
72 1,5,9
89 1,4
91 9,11
有什么想法吗?
最佳答案
在 SQL Server 中你可以做这样的事情吗:
Select B.user_id
, Stuff(
(
Select ',' + B1.AccessLevel
From AccessControl.dbo.BadgeLink As B1
Where B1.user_id = B.user_id
Group By B1.AccessLevel
For Xml Path('')
), 1, 2, '') As AccessLevels
From AccessControl.dbo.BadgeLink As B
Group By B.user_id
关于sql - 将列转置为表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5670095/