sql server 2000 中 可以用函数,分组,实现字段列的聚合.
sql server 2005 一般采用邹建提供的一个合并字段技巧来处理.
如下:
if exists (select 1 from sys.objects where object_id=object_id('表1'))
begin
drop table 表1
end
create table 表1(编号 varchar(10),wt1 varchar(10),wt2 varchar(10))
insert into 表1
select '001','aaa','cccc'
union all select '001','bbb','ffff'
union all select '001','ccc','eeee'
union all select '002','ssss','yyyyy'
go
SELECT *
FROM(
SELECT DISTINCT
编号
FROM 表1
)A
OUTER APPLY(
SELECT
[values]=STUFF(REPLACE(REPLACE(
(
SELECT wt1 FROM 表1 N
WHERE 编号= A.编号
FOR XML AUTO
), '<N wt1="', ','), '"/>', ''), 1, 1, '')
)N
OUTER APPLY(
SELECT
[values]=STUFF(REPLACE(REPLACE(
(
SELECT wt2 FROM 表1 Na
WHERE 编号= A.编号
FOR XML AUTO
), '<Na wt2="', ','), '"/>', ''), 1, 1, '')
)Na
drop table 表1

--结果

/**//*
编号 values values
----------- --------------- -------------------
001 aaa,bbb,ccc cccc,ffff,eeee
002 ssss yyyyy
*/