SQL Server中数据去重单列数据合并

sql中我们偶尔会用到对数据进行合并,但其中的某一列数据要进行合并的操作:

如下图,一个用户有多个角色ID,如果我们想要统计一个用户有哪些角色,并且以单列的展现形式,单纯的用DISTINCT去掉肯定是不行的

我们可以用下面的sql语句进行拼接,对数据进行合并:

 SELECT g.UserID,
  (SELECT CONVERT(VARCHAR(50),f.RoleID) +'-' FROM ( SELECT UserID,RoleID FROM dbo.SC_User_Role) f
WHERE f.UserID=g.UserID    
FOR XML PATH('')) AS ActionList
 FROM ( SELECT UserID,RoleID FROM dbo.SC_User_Role) g 
 GROUP BY g.UserID

合并后查询得到的数据如下:

其中的连接符可以自定义,现在遇到这种问题我是这么解决的,如果你有什么好的办法,请告诉我,谢谢!

原文地址:https://www.cnblogs.com/870060760JR/p/11943490.html