如何合并相同字段名的字符串?

来源:百度知道 编辑:UC知道 时间:2024/05/27 01:52:28
如表AAA,下面分别有字段XXX,YYY,ZZZ

XXX有值分别是张三 李四

Q:如何用类似类似Sum的方式合并XXX的字符串值变成张三,李四?
其实就是把一个相同字段所有的值相加,如查询出来XXX的值分别有张三,李四& more....如何把张三李四……这些字符串相加,变成张三,李四,……

结构类似:
table a
{
字段: XXX
值1: 张三
值2: 李四
值3: 王五
……
值n: N
}

------------
gc_ding:你这个是存储过程,能用普通的sql查询吗

create table AAA(XXX int,YYY varchar(20))
insert AAA select 1, '张三'
union all select 1, '李四'
union all select 2, '张三'
union all select 2, '李四'
union all select 3, '张三'

select XXX, YYY into #T from AAA order by XXX

declare @XXX int, @YYY varchar(1000)
update #T set
@YYY=case when @XXX=XXX then @YYY+','+YYY else YYY end,
@XXX=XXX,
YYY=@YYY

select XXX, max(YYY) as YYY from #T group by XXX

drop table AAA
drop table #T

--结果
/*
XXX YYY
------------------
1 张三,李四
2 张三,李四
3 张三
*/

以上是复杂的,你的要求比较简单些,这样就可以了
create table AAA(XXX varchar(20))
insert AAA select '张三'
union all select '李四'
union all select '王五'

declare @str varchar(8000)
set @str = ''
select @str=@str + XXX +',' from AAA