SELECT语句中的SQL Server表达式替换为列名

时间:2010-12-04 22:30:52

标签: sql-server

如何评估字符表达式以解析SELECT语句中将返回列行值的有效列名?例如,有效列名= Customer_1 =='Customer _'+'1'

2 个答案:

答案 0 :(得分:0)

  

如何评估字符表达式以解析SELECT语句中将返回列行值的有效列名?例如,有效列名= Customer_1 =='Customer _'+'1'

如果你需要这样做,你可能做错了,但是如果你必须:将列名称构建为行然后转动。

答案 1 :(得分:0)

您需要使用动态SQL。一个例子

DECLARE @DynSQL nvarchar(max)

DECLARE @Suffix int = 1

SET @DynSQL = N'SELECT Customer_' + CAST(@Suffix as nvarchar(10)) + 
              N' FROM YourTable WHERE foo = @foo'

EXEC sp_executesql @DynSQL, N'@foo int', @foo=1

与动态SQL一样,如果用户提供进程的任何输入,则需要考虑SQL注入。