首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在SQL查询中动态选择列

在SQL查询中动态选择列
EN

Stack Overflow用户
提问于 2019-06-14 06:07:11
回答 2查看 0关注 0票数 0

我有一个数据库字段名称调用Code,我试图使用如下所示的变量名称选择它:

代码语言:javascript
复制
Declare @var1 = [Code]

(SELECT @var1
 FROM [VoucherType]
 WHERE [DeletedBy] IS NULL
 AND [AutoID] = 1)

显然,SQL将解释@var1为字符串而不是我的数据库字段,如何以这种方式@var1将其识别为字段名称[Code]而不是字符串,可能没有任何select或if语句。

EN

回答 2

Stack Overflow用户

发布于 2019-06-14 14:39:58

试试这个:

代码语言:javascript
复制
DECLARE @var1 VARCHAR(20)
DECLARE @sql VARCHAR(255)

SET @var1 = 'Code'
SET @sql = 'select ' + @var1 + ' from [VoucherType] where [DeletedBy] is null and [AutoID] = 1'

EXEC sp_executesql @sql

您必须编写动态查询,然后执行 sp_executesql

要在事物的“动态”方面添加更多内容,请使用存储过程。请看这里的例子:

http://www.marten-online.com/database/execute-dynamic-sql-in-mssql.html

那就是......如果你使用的是Microsoft SQL SERVER

票数 0
EN

Stack Overflow用户

发布于 2019-06-14 15:17:07

您需要使用动态SQL。

代码语言:javascript
复制
declare @ColName varchar(128)

declare @sql varchar(4000)

Set @ColName='Code';

select @sql = 'SELECT '+@ColName+'
  FROM [VoucherType]
 WHERE [DeletedBy] IS NULL
 AND [AutoID] = 1'
  exec sp_executesql @sql
go

这篇文章可能会有帮助

从变量中的名称访问表

SQL:根据变量选择动态列名

问候

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

https://stackoverflow.com/questions/-100007021

复制
相关文章

相似问题

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