fid
1
2
3
60
50
...
行数不定,如何实现 
1,2,3,60,50

解决方案 »

  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.   

    CREATE TABLE #t1 (
    fid VARCHAR(20)
    )
    SELECT * FROM  #t1
    INSERT INTO #t1
    SELECT 
    '1'  UNION ALL SELECT
    '2'  UNION ALL SELECT
    '3'  UNION ALL SELECT
    '60' UNION ALL SELECT
    '50' DECLARE @strSql VARCHAR(8000)
    SET @strSql=''
    SELECT @strSql=@strSql+fid+' AS ['+fid+'],' FROM #t1SELECT @strSql='select '+LEFT(@strSql,LEN(@strSql)-1)EXEC( @strSql)
      

  3.   

    本帖最后由 josy 于 2010-12-21 18:12:42 编辑