例:ProId
-----------
89
31
想得到的结果:ProId
-------------
89,31

解决方案 »

  1.   

    /*如何将一列中所有的值一行显示
    数据源
      a
      b
      c
      d
      e
    结果
    a,b,c,d,e
    */create table tb(col varchar(20))
    insert tb values ('a')
    insert tb values ('b')
    insert tb values ('c')
    insert tb values ('d')
    insert tb values ('e')
    go--方法一
    declare @sql varchar(1000)
    set @sql = ''
    select @sql = @sql + t.col + ',' from (select col from tb) as t
    set @sql='select result = ''' + left(@sql , len(@sql) - 1) + ''''
    exec(@sql)
    /*
    result     
    ---------- 
    a,b,c,d,e,
    */--方法二
    declare @output varchar(8000)
    select @output = coalesce(@output + ',' , '') + col from tb
    print @output
    /*
    a,b,c,d,e
    */drop table tb
      

  2.   

    declare @s varchar(8000)
    select @s=isnull(@s+',','')+列 from tb
      

  3.   

    create table tb(ProId int)
    insert into tb values(89)
    insert into tb values(31)
    go--方法一 
    declare @sql varchar(1000) 
    set @sql = '' 
    select @sql = @sql + cast(t.ProId as varchar) + ',' from (select ProId from tb) as t 
    set @sql='select result = ''' + left(@sql , len(@sql) - 1) + '''' 
    exec(@sql) 
    /* 
    result 
    ------ 
    89,31
    */ --方法二 
    declare @output varchar(8000) 
    select @output = coalesce(@output + ',' , '') + cast(ProId as varchar) from tb 
    print @output 
    /* 
    89,31
    */ 
    drop table tb
      

  4.   

    借用乌龟的数据
    create table tb(col varchar(20)) 
    insert tb values ('a') 
    insert tb values ('b') 
    insert tb values ('c') 
    insert tb values ('d') 
    insert tb values ('e') 
    go declare @s varchar(8000)
    select @s=isnull(@s+',','')+col from tb
    select @s
    /*----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    a,b,c,d,e(1 行受影响)
    */
      

  5.   

    --如果是SQL2005
    declare @s varchar(max)
    select @s=isnull(@s+',','')+col from tb
    select @s