【转】Sql server 2005 中根据字段组,合并其它列值
原文链接:http://blog.csdn.net/zlp321002/archive/2007/04/02/1549517.aspx
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
*/
本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利
This posting is provided "AS IS" with no warranties, and confers no rights.
This posting is provided "AS IS" with no warranties, and confers no rights.

浙公网安备 33010602011771号