【转】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="'','), '"/>'''), 11'')
)N
OUTER APPLY(
    
SELECT 
        
[values]=STUFF(REPLACE(REPLACE(
            (
                
SELECT wt2 FROM 表1 Na
                
WHERE 编号= A.编号
                
FOR XML AUTO
            ), 
'<Na wt2="'','), '"/>'''), 11'')
)Na
drop table 表1

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

 

 

posted on 2008-07-11 00:03  王丹小筑  阅读(421)  评论(0)    收藏  举报

导航