select *from a 的结果是下面这样:

id    address
1     北京
2     上海
3     香港
4     长沙
那么我想查询出来的结果是address列的数据横着显示并且用逗号隔开,如下,sql语句应该怎么写呢(不用循环)?北京,上海,香港,长沙

解决方案 »

  1.   

    是啊 像四楼说的  因为你所储存的数据是以表的形式储存的 用select与查出来的数据也是从表里面查的 所以显示的时候会以表的形式来显示 而不是横排显示
      

  2.   

    declare @sql varchar(8000) 
    select @sql = isnull(@sql + ',' , '') + address from a group by address
    print @sql教程的话看看 google ->行转列即可
      

  3.   

    行列转换可以用pivot函数,自己去查一下吧,不知道可不可以加逗号.
      

  4.   


    select address from a where id=1
    union select address from a where id=2
    union select address from a where id=3
    union select address from a where id=4
      

  5.   

    declare @T Table(Id numeric(18), Code varchar(10))
    insert into @T(id,code)
    select 1, 'A'
    union all
    select 2, 'B'
    union all
    select 3, 'C'
    union all
    select 4, 'D';SELECT  STUFF((SELECT ' ' + code FROM @t FOR XML PATH('')), 1, 1, '') As tb
    结果
    A,B,C,D
      

  6.   

    SELECT  STUFF((SELECT ',' + code FROM @t FOR XML PATH('')), 1, 1, '') As tb
      

  7.   

    FOR XML PATH('')  是正解
      

  8.   

    得用一个WHILE循环,每次用一个VARCHAR变量去接收,之间加,