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