如何选择包含字符串的列

3
这是我的代码:
declare @MaxPointNumber INT=499, @pointNumber INT = 5;
select ('point'+CAST(@pointNumber as varchar))
from #TempHold

这是结果: enter image description here point5应该是列名,但不知何故它成为了表格中的一个新值。 有人能帮我理解发生了什么吗?

1
"point5应该是列的名称。我不知道你为什么认为这是正确的。" - Gordon Linoff
我的意思是point5是#TempHold表中的一列名。 - SwordW
2
你不能这样做。你需要一个动态查询 https://www.codeproject.com/Articles/20815/Building-Dynamic-SQL-In-a-Stored-Procedure - Juan Carlos Oropeza
3个回答

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)

0

你正在从Temphold中进行选择。这充当了你的列名。你正在检索的表格。


0

搞定了:

set @xxx=CAST(@pointNumber as varchar);
exec( 'select point'+ @xxx +' from #TempHold')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接