sql server 2005 中根据字段组,合并其它列值

本文介绍了一种在 SQL Server 2005 中合并多个字段值为单一字段的方法,通过使用 OUTER APPLY 和 FOR XML AUTO 实现了字段值的聚合。此方法适用于需要将同一记录下的多个字段值组合成一个字段的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 
*/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值