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



我正在尝试遍历我的计数器以创建一个动态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
....

最新更新