今天一个同事问我说能不能把sql查询结果的一列userid用逗号分割,串到一起,这样查询出来的结果就可以直接用了
于是我就去查了一下怎么实现。
--你要查询的结果,给它加序号 select row_number() over ( order by mbid desc ) as rownum, mbid into #a from sx_mb_info --循环赋值 declare @i int,@j int,@result varchar(5000) set @i=1 select @j= max(rownum)from #a set @result='' while @i<@j+1 begin select @result=@result+ mbid+',' from #a where rownum=@i set @i=@i+1; end select @result drop table #a
如下,当时碰到的问题是
如果给变量赋查询结果的值,一直不行。
最后查了一下才知道原来这么SQL给变量赋值的方法有两种(目前我就知道这两种)
一种是直接set @i='啦啦啦'
另一种是用select
在正常的select语句中加上变量
如下面
select @j= max(rownum)from #a