首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在where子句中使用动态列名而不执行变量

在where子句中使用动态列名而不执行变量
EN

Stack Overflow用户
提问于 2022-03-18 14:07:47
回答 1查看 75关注 0票数 0

我使用Server并具有以下查询:

代码语言:javascript
运行
复制
declare @variable nvarchar(max)
set @variable = 'Fixed_Assets'

declare @sql nvarchar(max)
set @sql = 'Select ' + @variable + ' from table where ' + @variable + '= 1 '

但是,我如何仍然可以使用@variable作为值而不是列名呢?

我想添加一个列(Name),然后使用固定资产的常数值

EN

回答 1

Stack Overflow用户

发布于 2022-03-18 14:18:53

不能将变量作为列名直接插入到命令中,但可以将命令创建为nvarchar,将另一个变量连接到其中(在您的例子中是列名),然后使用Exec()运行它。

代码语言:javascript
运行
复制
DECLARE @variable varchar(10)  
SET @variable = 'YourColumn'  
DECLARE @sqlCommandText nvarchar(1000); 

SET @sqlCommandText = N'select * from table where ' + @variable + ' = ''1'''

Exec (@sqlCommandText)

不要忘记,如果在sql中的字符串中有一个单引号,则需要将它们加倍。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71528277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档