sql server 中合并某个字段值的实例

有表如下:


sql server 中合并某个字段值的实例


如何获得如下结果:


sql server 中合并某个字段值的实例


解法


使用xml转换


代码如下:


复制代码 代码如下:

 CREATE TABLE body 


 ( 


     ID int, 


     BODY nvarchar(20)    


 ) 


 go 


 INSERT INTO body VALUES(1,’aaaa’) 


 INSERT INTO body VALUES(2,’bbbb’) 


 INSERT INTO body VALUES(1,’cccccc’) 


 INSERT INTO body VALUES(3,’ddddd’) 


 go 


 SELECT * FROM body 


 SELECT distinct a.ID,stuff((SELECT ‘,’+BODY FROM body WHERE ID=a.ID FOR xml path(”)),1,1,”) ASBODY 


 FROM


 body a    


 –具体思路是这样的: 


 SELECT ‘,’+BODY FROM body WHERE ID=a.ID FOR xml path(”) 


 –这条语句的作用是按照a中的ID查找body表中ID=a.ID的所有记录,并把它转换成一个xml(关于将查询集转换成xml的文章,你可以去看看) 


 stuff((SELECT ‘,’+BODY FROM body WHERE ID=a.ID FOR xml path(”)),1,1,”) 


 –这条语句的作用是把生成的xml前面的一个逗号去掉并转化成标量值 


 –最后用一个distinct去掉重复的记录


原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/234451.html

(0)
上一篇 2022年1月23日
下一篇 2022年1月23日

相关推荐

发表回复

登录后才能评论