日期:2014-05-17  浏览次数:20391 次

如何得到一个查询结果里 ID集合的值?
比如
select ID from tb

查询一个结果是

1
2
3
4
5


如何能在同一个存储过程里 获取到格式为 1,2,3,4,5 的一个字符串集合?


------解决方案--------------------
select id=stuff((select ','+id from tb t where id=tb.id for xml path('')), 1, 1, '') 
from tb 

------解决方案--------------------
select stuff((select ','+rtrim(ID) from tb for xml path('')),1,1,'')
------解决方案--------------------
create function dbo.f_str(@id int)   
returns varchar(8000)   
as  
begin       
declare @str varchar(8000)       
set @str = ''       
select @str = @str + ',' + id from tb where id=@id        
return stuff(@str, 1, 1, '')   
end  
go       
-- 调用函数  SELECT id = dbo.f_str(id) FROM tb
 
------解决方案--------------------
for xml path用法
http://www.cnblogs.com/doubleliang/archive/2011/07/06/2098775.html