表里有个字段是varchar(50)的,如何把所有记录的那个字段里的值加个分隔符号然后合在一起,放在一条记录的一个字段里。
表如下:
表Users里的数据:
id UserName
1 admin
2 abcde
3 fghij执行SQL语句之后输出以下内容
AllUser
admin, abcde, fghij
表如下:
表Users里的数据:
id UserName
1 admin
2 abcde
3 fghij执行SQL语句之后输出以下内容
AllUser
admin, abcde, fghij
set @AllUser = ''
select @AllUser = @AllUser + ',' + UserName fro Users
set @AllUser = stuff(@AllUser,1,1,'')
select AllUser = @AllUser
declare @AllUser varchar(8000)
set @AllUser = ' '
select @AllUser = @AllUser + ', ' + [Name] from [User]
set @AllUser = stuff(@AllUser,1,3, ' ')
select AllUser = @AllUser
此题亦可用游标骤条累加的方式完成。
set @AllUser = ''
select @AllUser = @AllUser + [Name]+ ', ' from [User]
set @AllUser = substring(@AllUser,1,len(@alluser) - 2)
select AllUser = @AllUser