加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

在SQL查询中动态选择列

发布时间:2020-12-12 16:21:57 所属栏目:MsSql教程 来源:网络整理
导读:我有一个数据库字段名称调用代码,我试图使用如下变量名称选择它: Declare @var1 = [Code](SELECT @var1 FROM [VoucherType] WHERE [DeletedBy] IS NULL AND [AutoID] = 1) 显然,SQL会将@ var1解释为字符串而不是数据库的字段,我怎样才能以这种方式将@ var1识
我有一个数据库字段名称调用代码,我试图使用如下变量名称选择它:
Declare @var1 = [Code]

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

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

解决方法

尝试这个:
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读