日期:2014-05-18  浏览次数:20853 次

如何让返回的表里的某一列成为一行来返回~
比如:

select   top   4   id   from   [tb]

现返回
1
2
4
6

如何让返回的结果成为
1,2,4,6呢?只是在查询分析器里~

------解决方案--------------------
declare @str varchar(100)


declare @str varchar(100)
set @str = ' '
select top 4 @str = @str + cast(id as varchar) from [tb]
select @str

------解决方案--------------------
declare @str varchar(100)
set @str = ' '
select top 4 @str = @str + cast(id as varchar) from [tb]
select @str
------解决方案--------------------
例如

declare @str varchar(100)
set @str = ' '
select top 4 @str = @str + ', '+ cast(state as varchar) from authors
select stuff(@str,1,1, ' ')

----
CA,CA,CA,CA

------解决方案--------------------
declare @re varchar(200)
set @re= ' '
select top 2 @re=@re+ ', '+rtrim(id) from
(
select id=1
union all select id=2
union all select id=3
union all select id=4
)tmp

select stuff(@re, 1, 1, ' ')

--result
1,2

(1 row(s) affected)
------解决方案--------------------
declare @re varchar(1000)
set @re= ' '
select top 4 @re=@re+ ', '+rtrim(id) from [tb]
select stuff(@re, 1, 1, ' ')