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

时间:2014-12-04 08:46:21

标签: sql sql-server tsql

我有一个记录集,我希望将所有表变量值合并到此单个记录集中,从而产生多个记录集。

例如:我的表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条件的单个记录。但是当我执行最后一次选择时,它应该为每个表变量值显示多个记录集。我不想使用任何循环。我该如何处理?

1 个答案:

答案 0 :(得分:0)

请尝试以下操作:

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函数设置了长度= 2。