当前位置: 首页 > 面试题库 >

动态选择SQL查询中的列

易琛
2023-03-14
问题内容

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

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



 类似资料:
  • 我想在 SQL Server 2008 中完成以下操作 我有一个如下文章表 还有这样的订单预测表。 有没有办法创建一个查询,按照< code>order列的顺序为预测表中的每条记录生成一列。如果可能的话,我怎么能这样做呢?

  • 问题内容: 我正在使用c#中的linq查询遇到一个问题,我的linq查询如下 我有一个 perfmon 类,它包含诸如(id,counter1,counter2 …)之类的属性,现在有20多个计数器,我已经开发了sql查询以根据参数中传递的计数器名称选择id和计数器,例如,如果我已经传递了counter1,它将仅选择id,counter1(重命名为counter) 如果我将在这里使用开关盒,那么它

  • 我有一个这样的SQL问题 根据用户输入,我想将botcode='r1'更改为给定输入。在不重新启动作业的情况下说出botcode='r10'。有没有办法做到这一点。我在flink 1.7上使用stream env。我尝试配置流来读取输入。但仍停留在如何动态更改查询上。有人能帮我吗?提前谢谢

  • 问题内容: 我有一张表,默认有20列 这20列名为D1 D2 D3 … D20,现在带有选择查询,我想动态添加其他列。例如,对于D21 D22 … D31,我如何编写查询以动态递增添加此列值..最大限制为31,请帮助 缺省表列 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D20 现在我想在连续性将列添加到D2

  • 问题内容: 我需要创建一个GUI,用户可以使用它选择几个属性,这些属性将用于查询数据库以找到合适的人。我正在寻找有关如何根据用户的选择动态生成数据库查询的想法。 查询将包含几个字段,但为便于理解,我仅在下面举例说明三个字段: 职业 -可以有0到n个职业字符串。如果给出了占用字符串,则其中之一必须匹配。 年龄 -年龄可以表示为: 完全匹配(30) 范围(例如30-40) 小于一个值(-40) 大于一

  • 从表A中选择columnList=>Id1,Id2,Id3,Id4,ID5。 使用结果,我需要从表B中查询。 以下是案例 就像这个案子会变大一样。我想知道如何在Spring Data JPA中实现这一点。它类似于Spring Data JPA中的动态投影。 注意:存储在TableA中的列名在TableB中使用。 理由:如果我能做到这一点,它将很容易拉出数据,这只是我需要的。 我们能使用Criter