表里有个字段是varchar(50)的,如何把所有记录的那个字段里的值加个分隔符号然后合在一起,放在一条记录的一个字段里。
表如下:
表Users里的数据:
id     UserName
1      admin
2      abcde
3      fghij执行SQL语句之后输出以下内容
AllUser
admin, abcde, fghij

解决方案 »

  1.   

    declare @AllUser varchar(8000)
    set @AllUser = ''
    select @AllUser = @AllUser + ',' + UserName fro Users 
    set @AllUser = stuff(@AllUser,1,1,'')
    select AllUser = @AllUser 
      

  2.   

    上面的有些许错误
    declare   @AllUser   varchar(8000) 
    set   @AllUser   =   ' ' 
    select   @AllUser   =   @AllUser   +   ', '   +   [Name]   from   [User]   
    set   @AllUser   =   stuff(@AllUser,1,3, ' ') 
    select   AllUser   =   @AllUser  
    此题亦可用游标骤条累加的方式完成。
      

  3.   

    不信刷不出来,刷declare   @AllUser   varchar(8000) 
    set @AllUser =   '' 
    select @AllUser = @AllUser  +  [Name]+ ', ' from   [User]   
    set @AllUser =  substring(@AllUser,1,len(@alluser) - 2) 
    select   AllUser = @AllUser