【难度】!如何在聚合时,将一列的多行的内容组合起来
RT!
ID Info
---------------------
1,'aa'
1,'bb'
1,'cc'
结果
ID info
---------------
1,'aa bb cc '
请不吝赐教
[解决办法]
--sql2005
select id,
Info=stuff((select ','+ltrim(Info) from tb a where a.id=tb.id for xml path('')),1,1,'')
from tb
group by id
--sql2000使用自定义函数
[解决办法]
- SQL code
--sql 2000CREATE FUNCTION dbo.f_str(@id int)RETURNS varchar(8000)ASBEGIN DECLARE @r varchar(8000) SET @r = '' SELECT @r = @r + ',' + Info FROM tb WHERE id=@id RETURN STUFF(@r, 1, 1, '')ENDGO-- 调用函数SELECt id, Info = dbo.f_str(id) FROM tb GROUP BY id
[解决办法]
- SQL code
--sql2005select id,Info=stuff((select ' '+ltrim(Info) from tb a where a.id=tb.id for xml path('')),1,1,'')from tb group by id
[解决办法]
上面2005可以的