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

sqlserver中如何循环表,读取表中的一列数据
用sql server 查找的结果存放在一个临时表#T中,结果如下所示:name 是列名,下面的三行是临时表#T中的数据

name
安神补脑液
四件套
山菇菌

我想在上面的基础上获得这样的结果:
安神补脑液,四件套,山菇菌 结果返回一行数据。
不知道用sql 语句怎么写,谢谢

------解决方案--------------------
create table #T(name nvarchar(30))

insert into #T
select '安神补脑液' union all
select '四件套' union all
select '山菇菌'

select distinct STUFF((select ','+name from #t for xml path('')),1,1,'') as name
from #T
/*
name
安神补脑液,四件套,山菇菌
*/

------解决方案--------------------
create table #T(name nvarchar(30))
 
insert into #T
select '安神补脑液' union all
select '四件套' union all
select '山菇菌'
 
select DISTINCT
stuff((select ','+name from #T b 
ORDER BY GETDATE()     
       for xml path('')),1,1,'') 'name'
from #T a
/*
name
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
安神补脑液,四件套,山菇菌
*/