关于SQL Server/oracle将一列的多行内容拼接成一行的问题讨论

时间:2021-04-18 10:25:07

比如表中有两列数据 :

ep_classes  ep_name

AAA         企业1

AAA         企业2

AAA         企业3

BBB         企业4

BBB         企业5


我想把这个表变成如下格式:

ep_classes      ep_name

AAA             企业1,企业2,企业3

BBB             企业4,企业5


select ep_classes, ep_name = (stuff((select ',' + ep_name from ep_detail where ep_classes =   
    a.ep_classes for xml path('')),1,1,'')) from ep_detail a group by ep_classes  


这里使用了SQL Server 2005版本以后加入的stuff以及for xml path




select FD_PERSONID,wmsys.wm_concat(FD_POSTID) name from SYS_ORG_POST_PERSON where FD_PERSONID='' group by FD_PERSONID