我想做以下程序
declare @a as varchar(10)
set @a= '1'
declare @sql as varchar(1000)
--select @sql ='select convert(float,'+@a+')+1'
declare @b as varchar(20)
set @b = '5'
select @sql= 'while ('+@a+'<=4)
begin
select ['+@a+'] from #Seg1PD_TruncadaFinal where truncada ='+@a+'
set '+@a+'='+@a+'+1
end'
exec(@sql)
我有一个 6x5 的表,其中 5 个列名是 1、2、3、4、5,另一个是“Truncada”,有 5 行:1、2、3、4、5。例如,我想选择第 1 列和第 1 行,然后选择其他组合,所以我尝试了。问题在于当我想更改@a 的值时,可能是因为它是一个varchar,但这不是当时条件的问题。
对不起,我不是很清楚,这是我收到的错误:
Msg 102, Level 15, State 1, Line 1574 Incorrect syntax near '1'.
但是,当我编写没有 de 的代码时,set '+@a+'='+@a+'+1
它可以使用无限循环运行(因为它永远不会完成)。所以我认为问题出在集合中。