sql - 声明变量并在查询中使用

标签 sql sql-server-2008

请考虑以下事项

declare @MyField varchar(255);
set @MyField = 'MyDatabaseField';

select distinct Table.@MyField
from Table

这会导致错误@MyField 附近的语法不正确。然后我尝试了:

select distinct Table.['+@MyField+']
from Table

但是,这会导致列名不正确错误。

如何在此查询中正确使用@MyField?我使用的是 SQL Server 2008。

最佳答案

请尝试通过构建字符串来执行。

declare @MyField varchar(255);
set @MyField = 'MyDatabaseField';

exec ('select distinct Table.'+@MyField+' from Table')

引用sp_executesql (Transact-SQL) , Using sp_executesql

关于sql - 声明变量并在查询中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23425245/

相关文章:

sql - 如何在sql server中使用正则表达式?

sql - 获取插入/修改行的 DATETIME

sql - 使用 LEFT JOIN 只选择一个连接行

sql - 如何在 Google Big Query 中实现 MINUS 运算符

sql-server - 数据库设计 - COUNTRY、CURRENCY int 或 varchar 的主键

sql - 从 View 导出数据

sql-server-2008 - 如何从 SQL Server 的两个不同表列中获取一个不同的 ListofDate 列

c# - SQL Server 2008 回归时间的 DATE 数据类型!

MySQL - Geo - 获取最近的教区给定坐标

sql - 在创建 PostgreSQL 查询方面需要帮助