SQL Server : CAST within EXEC (Dynamic 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需要是 int,以便于提供输入。

请像这样使用

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

如果您不执行 算术运算。

DECLARE @param VARCHAR

DECLARE @param VARCHAR
DECLARE @sql VARCHAR(MAX)
SET @param = '1';
SET @sql = 'select ' + 'Column_' + @param + ' From Table';
EXEC(@sql)

相关内容

  • 没有找到相关文章

最新更新