当前位置: 代码迷 >> Sql Server >> 【难度】!怎么在聚合时,将一列的多行的内容组合起来
  详细解决方案

【难度】!怎么在聚合时,将一列的多行的内容组合起来

热度:5   发布时间:2016-04-27 17:14:27.0
【难度】!如何在聚合时,将一列的多行的内容组合起来
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 [email protected]  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可以的
  相关解决方案