[Table1]
ID,Name
1,aaa
2,bbb
3,ccc
4,ddd
5,eee
6,fff
7,gggselect Name from Table1 where ID in(2,3,4)取出行数据
bbb
ccc
ddd我想要bbb,ccc,ddd这样的格式,即把查询到的结果合并到1行用逗号分隔,请问如何处理?

解决方案 »

  1.   

    declare @name varchar(2000)
    select @name = isnull(@name + ',','') + Name from Table1 where ID in(2,3,4)select @name as name
      

  2.   

    declare @str varchar(1000)=''
    select @str=@str+name+',' Table1 where ID in(2,3,4)
    select substring(@str,1,len(@str)-1)
     
      

  3.   


    declare @s varchar(8000) 
    select @s=isnull(@s,'')+rtrim(Name)+',' from Table1  where ID in(2,3,4)
    select @s as result
      

  4.   

    declare @nname varchar(2000)
    set @nname=''
    select @nname=@nname+','+[Name] from Table1 where ID in(2,3,4)
    select @nname
      

  5.   

    select a.Name,b.Name,c.Name from Table1 a,Table1 b,Table1 c where a.ID=2 AND b.ID=3 AND c.ID=4
      

  6.   

    xml path
    好像可以 没环境 就不写了
      

  7.   

    select stuff((select ','+Name from Table1 where ID in(2,3,4) for xml path('')),1,1,'')
      

  8.   


    谢谢各位,我试了下以下语句可以,不知还有更优的方案吗select distinct names=stuff((select ','+name from Table1 where name in(2,3,4) for xml path('')), 1, 1, '')
    from (select name from Table1 where name in(2,3,4)) tb