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