這是我的代碼:如何選擇一列用字符串
declare @MaxPointNumber INT=499, @pointNumber INT = 5;
select ('point'+CAST(@pointNumber as varchar))
from #TempHold
point5應該是列名,但不知何故,它成爲一個新的價值在桌子裏。 任何人都可以幫我理解發生了什麼事嗎?
這是我的代碼:如何選擇一列用字符串
declare @MaxPointNumber INT=499, @pointNumber INT = 5;
select ('point'+CAST(@pointNumber as varchar))
from #TempHold
point5應該是列名,但不知何故,它成爲一個新的價值在桌子裏。 任何人都可以幫我理解發生了什麼事嗎?
如前所述,你需要動態SQL
DECLARE @sql VARCHAR(200)
DECLARE @MaxPointNumber INT=499, @pointNumber INT = 5;
SET @sql = 'SELECT ' + ('point'+CAST(@pointNumber as varchar)) +
' from #TempHold'
EXEC (@sql)
您正在從Temphold中選擇。這是作爲你的列名。您正在檢索的表格。
想通了:
set @xxx=CAST(@pointNumber as varchar);
exec('select point'+ @xxx +' from #TempHold')
「point5應該是列名」。我只是不知道爲什麼你認爲這是真的。 –
我的意思是,point5是#TempHold表的一個列名 – SwordW
那麼你不能這樣做。你需要一個動態查詢https://www.codeproject.com/Articles/20815/Building-Dynamic-SQL-In-a-Stored-Procedure –