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

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

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

 

我们可以用下面的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

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

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

 

 

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

 

相关文章:

  • 2021-10-13
  • 2022-12-23
  • 2021-07-12
  • 2021-12-23
  • 2022-12-23
  • 2021-07-16
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-02
  • 2022-02-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案