日期:2014-05-19  浏览次数:20389 次

如何汇总varchar类型的字段
如果存在如下数据表:
A               B              
pro1         qqqqq
pro1         wwwww
pro1         eeeee
pro2         rrrrr
pro2         ttttt
pro1         yyyyy
pro1         uuuuu

要实现如下输出:
A               B
pro1         qqqqq,wwwww,eeeee,yyyyy,uuuuu
pro2         rrrrr,ttttt

要求:不使用临时表,一条查询语句实现

------解决方案--------------------
好像要用游标实现了。
------解决方案--------------------
用函数行不?
------解决方案--------------------
--創建函數
create function fn_cmb(@id varchar(100))
returns varchar(8000)
as
begin
declare @s varchar(8000)
select @s = isnull(@s, ' ') + ', ' + B
from 表
where A = @id
set @s = stuff(@s, 1, 1, ' ')
return @s
end

--調用函數
select A, fn_cmb(A) from 表
group by A