小编典典

SQL Server:EXEC中的CAST(动态SQL)

sql

我正在尝试动态计算列名,但是SQL Server不允许这种情况发生。有正确的方法吗?

预期结果

SELECT Column_1
FROM Table

询问

DECLARE @param AS INT;
SELECT @param = 1;

EXEC('SELECT Column_' + CAST(@param AS VARCHAR) + ' FROM Table');

捕获:@Param为了提供输入的便利,需要将其理解为整数。


阅读 165

收藏
2021-05-16

共1个答案

小编典典

请这样使用

DECLARE @param AS INT;
SELECT @param=1;
DECLARE @SQL AS VARCHAR(MAX) = 'SELECT Column_'+CAST(@param AS VARCHAR(5))+' FROM Table'
EXEC(@SQL);
2021-05-16