读书人

【难度】!怎么在聚合时将一列的多行

发布时间: 2012-01-13 22:43:30 作者: rapoo

【难度】!如何在聚合时,将一列的多行的内容组合起来
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可以的

读书人网 >SQL Server

热点推荐