使用变量选择列?

时间:2013-11-27 22:50:52

标签: sql sql-server sql-server-2005

我想知道是否有办法通过使用SQL变量来选择列。例如。表是 - ID,姓名,地址

DECLARE @Column varchar(25)
SET @Column = 'Name' -- This can be another column also
SELECT @Column
FROM MyTable

这显示了我的名字'在我的表中有多少行。 甚至可以做我想做的事情吗?

感谢。

3 个答案:

答案 0 :(得分:3)

可以使用动态SQL执行此操作:

DECLARE @Column varchar(25)
       ,@sql VARCHAR(MAX)
SET @Column = 'Name' -- This can be another column also
SET @sql = 'SELECT '+@Column+'
            FROM MyTable
            '
EXEC (@sql)

您可以通过将EXEC更改为PRINT来测试动态SQL查询,以确保每个结果查询都符合您的预期。

答案 1 :(得分:2)

您可以使用动态SQL:

DECLARE @Column nvarchar(25)
SET @Column = 'Name' -- This can be another column also
DECLARE @sql nvarchar(max) = N'SELECT ' + @Column + N' FROM MyTable'

exec(@sql)

答案 2 :(得分:1)

Sql当前正在将您的变量解释为字符串。

From a previous answer on stack overflow:

DECLARE @Column varchar(25)
SET @Column = 'Name' -- This can be another column also
SET @sqlText = N'SELECT ' + @Column + ' FROM MyTable'
EXEC (@sqlText)