34,590
社区成员
发帖
与我相关
我的任务
分享
----------------------------------------------------
/*如何将一列中所有的值一行显示
数据源
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
-------------
--> 测试数据:@tb
declare @tb table([category] int)
insert @tb
select 123 union all
select 528 union all
select 698 union all
select 453 union all
select 527 union all
select 562
declare @sql varchar(8000)
select @sql=isnull(@sql+',','')+ltrim(category) from @tb
select @sql as category
/*
category
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
123,528,698,453,527,562
*/
declare @sql varchar(8000)
select @sql=isnull(@sql+',','')+category from atable
select @sql