在博问上看到一个提问“MSSQL如何将查询结果拼接成字符串” ,想了一下应该怎么实现呢,在c#等语言下好实现,但在sql里实现、还真没做过。
目标:想要在SQL中将查询的结果拼接为 '1','2','3','4','5'
分析:要进行拼接就要取得每行的值,想到了游标可以做到。于是有了下面的方法
select name from area
查询结果如下
办公楼
车间宿舍未知宜家厂综合楼解决方法:
declare @name varchar(50)
declare @result varchar(500)set @result=''--定义一个游标
declare user_cur cursor for select name from area
--打开游标open user_curwhile @@fetch_status=0begin--读取游标 fetch next from user_cur into @name --print @name set @result=@result+','''+@name+'''' --print @Loginendclose user_cur--摧毁游标deallocate user_curprint @result
查询结果如下:
,'宜家厂','宿舍','车间','未知','办公楼','综合楼','综合楼'