这可能很容易,但我无法理解它。 SQL Server 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
任何想法?
答案 0 :(得分:3)
在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
答案 1 :(得分:2)
这里有关于这个主题的绝对精彩的文章:http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/它存在于我的书签中,我经常提到它。如果这不能完全回答您的问题,请告诉我