在sql server中创建动态联合查询

时间:2015-03-11 03:20:42

标签: sql sql-server

我试图遍历我的计数器来创建一个动态的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 任何建议都会有所帮助

1 个答案:

答案 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)