sql server 中合并某个字段值的实例
程序员文章站
2023-12-10 09:21:22
有表如下:
如何获得如下结果:
解法
使用xml转换
代码如下:
复制代码 代码如下: create table body
&n...
有表如下:
如何获得如下结果:
解法
使用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去掉重复的记录