我正在尝试遍历我的计数器以创建一个动态的 sql 查询,它最终应该看起来像

I am trying to loop through my counter to create a dynamic sql query which should finally look like

我正在尝试遍历我的计数器以创建一个动态 sql 查询,它最终应该看起来像 110 111 112

我正在尝试使用这种方法来获取最终查询,但似乎不起作用

declare @CurrentRow int
set @CurrentRow =0;
declare @RowsToProcess int
declare @FinalHistoricalQuery varchar(5000)
WHILE @CurrentRow<3
BEGIN      
   SET @FinalHistoricalQuery =' select 11'+convert(varchar(20),@CurrentRow) + ' union '
   SET @CurrentRow=@CurrentRow+1
END

SET @FinalHistoricalQuery = left(@FinalHistoricalQuery,len(@FinalHistoricalQuery)-6)
exec (@FinalHistoricalQuery)

我正在寻找的最终输出是 110 111 112 但它是 112

如何实现?

您缺少 append 在每个循环中生成的字符串,因此您将只获得在最后一个循环中生成的字符串将存储在变量中。

同时用 empty string 初始化 variable

declare @FinalHistoricalQuery varchar(5000)=''
....
SET @FinalHistoricalQuery +=' select 11'+convert(varchar(20),@CurrentRow) + ' union '
SET @CurrentRow=@CurrentRow+1
....