在while循环中使用UNION ALL的解决方法如下所示:
DECLARE @counter INT = 1;
DECLARE @result_table TABLE (column1 INT, column2 VARCHAR(50));
WHILE @counter <= 10
BEGIN
INSERT INTO @result_table
SELECT column1, column2
FROM table1
WHERE condition = @counter
UNION ALL
SELECT column1, column2
FROM table2
WHERE condition = @counter;
SET @counter = @counter + 1;
SELECT * FROM @result_table;
在上面的示例中,我们首先声明一个计数器变量@counter
并将其初始化为1。然后,我们创建一个临时表@result_table
来存储结果。
在while循环中,我们使用INSERT INTO语句将每次循环的结果插入到@result_table
中。我们使用UNION ALL操作符将来自两个不同表的数据合并在一起。请注意,在每次循环中,我们可以使用不同的条件来过滤表中的数据。
最后,我们在循环结束后通过SELECT语句检索整个@result_table
表的内容,以获得最终的结果。
请根据您的需求调整示例中的表名、条件和列名。