您的位置:首页 > 数据库

MSSQL2005中将多行合并为一行的方法,此方法不再使用sql2000中函数转换的办法

2008-05-29 10:06 555 查看
处理前数据:
id value
1 aa
1 bb
2 aaa
2 bbb
2 ccc
处理后数据

1 aa,bb
2 aaa,bbb,ccc

具体的方法如下(老汉http://blog.csdn.net/laohan8848/):
create table tb(id int, value varchar(10))

insert into tb values(1, 'aa')

insert into tb values(1, 'bb')

insert into tb values(2, 'aaa')

insert into tb values(2, 'bbb')

insert into tb values(2, 'ccc')

go

-- 查询处理

--select * from tb

SELECT * FROM(SELECT DISTINCT id FROM tb)A OUTER APPLY(

SELECT [values]= STUFF(REPLACE(REPLACE(

(

SELECT value FROM tb N

WHERE id = A.id

FOR XML AUTO

), '<N value="', ','), '"/>', ''), 1, 1, '')

)N

drop table tb
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐