我试图遍历我的计数器来创建一个动态的SQL查询,最终应该看起来像
我正在尝试使用此方法来获取最终查询但不是 似乎工作
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 任何建议都会有所帮助
答案 0 :(得分:1)
您错过了使用dynamic query
中的计数器。尝试这样的事情。
WHILE @CurrentRow<@RowsToProcess
BEGIN
SET @FinalHistoricalQuery +=' select id from table'+convert(varchar(20),@CurrentRow) + ' union '
SET @CurrentRow=@CurrentRow+1
END
SET @FinalHistoricalQuery = left(@FinalHistoricalQuery,len(@FinalHistoricalQuery)-6)
exec (@FinalHistoricalQuery)