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

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

 

 

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

 

posted @ 2019-11-27 16:46  “!”  阅读(1536)  评论(0编辑  收藏  举报