SQL 在某一个表,列的内容汇总,中间还可以用句号区分开。表列内容A列产品贸易工厂------------------------------------------最后显示结果:A 列
产品,贸易,工厂

解决方案 »

  1.   

    如果不是求一条sql的话,可以用存储过程或函数实现
      

  2.   

    ----------------------------------------------------
    /*如何将一列中所有的值一行显示
    数据源
      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
    */---方法三
    declare @s varchar(1000)
    select @s=isnull(@s+',' , '')+col from tb
    select @s
    /*
    a,b,c,d,e
    */drop table tb
    -------------
      

  3.   

    use Tempdb
    go
    --> --> 
     
    if not object_id(N'Tempdb..#T') is null
    drop table #T
    Go
    Create table #T([A列] nvarchar(2))
    Insert #T
    select N'产品' union all
    select N'贸易' union all
    select N'工厂'
    Go
    DECLARE @s NVARCHAR(1000)
    Select @s=ISNULL(@s+',','')+[A列] from #T
    SELECT @s AS [A列]
    GO
    SELECT STUFF((SELECT ','+[A列] FROM #T FOR XML PATH('')),1,1,'')[A列]