sql 数组变量 保存 查询到的 ID 结果集.

雨中客0 2017-07-07 07:43:55
DECLARE @str VARCHAR(1000)

set @str = (select id from table)

相当于: set @str = '1,2,3,4,5,6'

试了几种语法都不行..

请教各位前辈, 怎么把ID 结果集存储到变量中, 实现方式越简洁越好.
...全文
265 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wdlglb 2017-07-08
  • 打赏
  • 举报
回复
引用 2 楼 二月十六的回复:
DECLARE @str VARCHAR(1000);
SET @str = STUFF(( SELECT ',' + RTRIM(id)
FROM dbo.tab
FOR
XML PATH('')
), 1, 1, '');
--读取测试结果
SELECT @str


学习了,stuff和path
中国风 2017-07-08
  • 打赏
  • 举报
回复
参数直接用XML赋值或用表类型参数保存结果集,其它由程序去处理 e.g.
DECLARE @x XML=(SELECT TOP 2 name FROM sys.tables FOR XML PATH(''),ROOT('R'))
SELECT @x
卖水果的net 2017-07-08
  • 打赏
  • 举报
回复
这个应该不用for path xml, set @s='' select @s = @s + id from t
二月十六 2017-07-07
  • 打赏
  • 举报
回复
DECLARE @str VARCHAR(1000);
SET @str = STUFF(( SELECT ',' + RTRIM(id)
FROM dbo.tab
FOR
XML PATH('')
), 1, 1, '');
--读取测试结果
SELECT @str


RINK_1 2017-07-07
  • 打赏
  • 举报
回复
DECLARE @str VARCHAR(1000) SET @str=STUFF((SELECT ','+ID FROM TABLE FOR XML PATH('')),1,1,'')

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧