--- 表
declare @T table( I int identity(1,1), V nvarchar(50) )

insert into @T select 'A'
insert into @T select 'B'
insert into @T select 'C'
insert into @T select 'D'
insert into @T select 'E' declare @I nvarchar(100);set @I = '';--- 这里写算法。(所写字符最短的100分,字符数不包括空格和分号)--- 这里打印 print @I 结果是: A,B,C,D,E
--- 注意:不能偷懒直接赋值 @I = 'A,B,C,D,E',那是赖皮。

解决方案 »

  1.   

    declare @T table( I int identity(1,1), V nvarchar(50) ) insert into @T select 'A' 
    insert into @T select 'B' 
    insert into @T select 'C' 
    insert into @T select 'D' 
    insert into @T select 'E' declare @I nvarchar(100)
    select @i=isnull(@i+',','')+V from @t
    select @i
      

  2.   

    declare @T table( I int identity(1,1), V nvarchar(50) ) insert into @T select 'A' 
    insert into @T select 'B' 
    insert into @T select 'C' 
    insert into @T select 'D' 
    insert into @T select 'E' declare @I nvarchar(100)
    select @i=isnull(@i+',','')+V from @t
    select @i
    /*
    A,B,C,D,E(1 個資料列受到影響)
    */
      

  3.   

    declare @T table( I int identity(1,1), V nvarchar(50) ) insert into @T select 'A' 
    insert into @T select 'B' 
    insert into @T select 'C' 
    insert into @T select 'D' 
    insert into @T select 'E' declare @I nvarchar(100)
    select @i=isnull(@i+',','')+V from @t
    select ''''+@i+''''
    /*
    'A,B,C,D,E'(1 個資料列受到影響)
    */
      

  4.   


    declare @T table( I int identity(1,1), V nvarchar(50) ) insert into @T select 'A' 
    insert into @T select 'B' 
    insert into @T select 'C' 
    insert into @T select 'D' 
    insert into @T select 'E' declare @I nvarchar(100)
    SELECT @I=ISNULL(@I+',','')+v FROM @T
    SELECT @I --- 这里写算法。(所写字符最短的100分,字符数不包括空格和分号) 
    --- 这里打印 print @I 结果是: A,B,C,D,E 
    --- 注意:不能偷懒直接赋值 @I = 'A,B,C,D,E',那是赖皮
    /*
    ----------------------------------------------------------------------------------------------------
    A,B,C,D,E(1 行受影响)*/
      

  5.   

    declare @T table( I int identity(1,1), V nvarchar(50) ) insert into @T select 'A' 
    insert into @T select 'B' 
    insert into @T select 'C' 
    insert into @T select 'D' 
    insert into @T select 'E' 
    declare @I nvarchar(4000)set @I = ''select @I = @I + ',' + V
    from @Tselect stuff(@I,1,1,'')
    ---------------
    A,B,C,D,E
      

  6.   

    declare @T table( I int identity(1,1), V nvarchar(50) ) insert into @T select 'A' 
    insert into @T select 'B' 
    insert into @T select 'C' 
    insert into @T select 'D' 
    insert into @T select 'E' declare @I nvarchar(100)
    select @i=isnull(@i+',','')+V from @t
    select @i
      

  7.   

    select distinct stuff((select ','+V from @t for xml path('')),1,1,'') from @t t
      

  8.   

    /*如何将一列中所有的值一行显示
    数据源
      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
      

  9.   

    --- 表
    declare @T table( I int identity(1,1), V nvarchar(50) )insert into @T select 'A'
    insert into @T select 'B'
    insert into @T select 'C'
    insert into @T select 'D'
    insert into @T select 'E'declare @I varchar(100)
    select @i=isnull(@i+',','')+V from @t
    select @i--- 这里写算法。(所写字符最短的100分,字符数不包括空格和分号)
    --- 这里打印 print @I 结果是: A,B,C,D,E
    --- 注意:不能偷懒直接赋值 @I = 'A,B,C,D,E',那是赖皮。
      

  10.   

    declare @T table( I int identity(1,1), V nvarchar(50) ) insert into @T select 'A' 
    insert into @T select 'B' 
    insert into @T select 'C' 
    insert into @T select 'D' 
    insert into @T select 'E' declare @I nvarchar(100);set @I = ''; 
    select @i=@i+','+V from @t
    select @i
      

  11.   

    INSERT INTO @T SELECT 'A,B,C,D,E'
    SELECT TOP 1 * FROM @T ORDER BY I DESC