我正在尝试动态计算列名,但是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)