sql里将重复行数据合并为一行,数据用逗号分隔


create table aa
  (
  UserID int ,
  UserName nvarchar(50),
  CityName nvarchar(50)
  );
 
 insert into aa (UserID,UserName,CityName) values (1,'a','上海')
 insert into aa (UserID,UserName,CityName) values (2,'b','北京')
 insert into aa (UserID,UserName,CityName) values (3,'c','上海')
 insert into aa (UserID,UserName,CityName) values (4,'d','北京')
 insert into aa (UserID,UserName,CityName) values (5,'e','上海')
 
 select * from aa


 
 sqlserver
 SELECT CityName,STUFF((SELECT ',' + UserName FROM aa subTitle WHERE CityName=A.CityName FOR XML PATH('')),1, 1, '') AS A
 FROM aa A
 GROUP BY CityName

 

oracle:

SELECT CityName,LISTAGG(UserName, ',') WITHIN GROUP(ORDER BY UserName) AS usernames
     FROM aa GROUP BY CityName;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM