这是我的代码:
declare @MaxPointNumber INT=499, @pointNumber INT = 5;
select ('point'+CAST(@pointNumber as varchar))
from #TempHold
point5应该是列的名称,但不知何故,它将成为表中的新值。 任何人都可以帮我理解发生了什么吗?
答案 0 :(得分:2)
如前所述,您需要动态sql
DECLARE @sql VARCHAR(200)
DECLARE @MaxPointNumber INT=499, @pointNumber INT = 5;
SET @sql = 'SELECT ' + ('point'+CAST(@pointNumber as varchar)) +
' from #TempHold'
EXEC (@sql)
答案 1 :(得分:0)
你是从Temphold中选择的。这是您的列名称。你正在检索的表。
答案 2 :(得分:0)
想通了:
set @xxx=CAST(@pointNumber as varchar);
exec( 'select point'+ @xxx +' from #TempHold')