具有多个表变量值 T-SQL 的单个记录的多个结果



我有一个记录集,我想将所有表变量值合并到这个记录集中,从而生成多个记录集。

例如:我有表 A 列 c1、c2、c3

declare @fnum table (fnum varchar(10))
insert into @fnum
select xc1 from x where xc='some condition' ---(results in multiple records)
select c1, c2, c3 , (select fnum  from @fnum ) from A where c3='some condition' 

表 A 返回 c3 条件的单个记录。但是当我进行最后一次选择时,它应该为每个表变量值显示多个记录集。我不想使用任何循环.我该如何处理它?

尝试以下操作:

select c1, c2, c3 , (STUFF((SELECT ', ' + fnum  FROM @fnum
     FOR XML PATH(''), TYPE, ROOT).value('root[1]','nvarchar(max)'), 1, 2, '')) from A where c3='some condition'

您可以在查询中放置任何分隔符而不是 ', '。 但不要忘记调整 STUFF 函数的长度参数。这里 ', ' 由 2 个字符组成,所以我为 STUFF 函数设置 length = 2。

最新更新