使用变量追加字段参数

时间:2012-10-23 15:53:41

标签: sql parameters append ado

Cross Here Here:

http://www.vbforums.com/showthread.php?696163-Use-variable-to-append-field-parameter&p=4264077#post4264077

我正在使用ADO将数据从MS Access检索到Excel,我想在我的查询的SELECT部分​​附加一个Iif语句。我的SQL字符串存储在文本文件中,任何参数都通过ADO附加。

我知道如何在WHERE子句中追加参数,甚至可以在SELECT语句中附加参数,如下所示:

SELECT BA, Iif(QA=[@somestring],[@somestring2], [@somestring3])
FROM myData
WHERE BA = 'some person'

但我想要完成的是将占位符[@somestring]转换为可变长度的Iif语句,例如:

SELECT BA, [@somestring]    

占位符转换为我使用函数构建的字符串:

Iif(QA='Jon Doe', 'Jon', Iif(QA='Jane Doe', 'Jane', 'Nobody')).  

现在,我得到的结果是我传递给填充整个字段的参数的文字字符串。因此,Iif语句实际上是为每条记录写出来的,而不是由SQL进行评估。

我正在尝试做什么,或者SQL是否需要在初始命令中预定义的Iif语句的字段?

即Iif(QA = [@ somestring],[@ sometstring2],[@ somestring3])

1 个答案:

答案 0 :(得分:0)

这是VBForums的直接剪切和粘贴。这是一个社区维基,只是为了从“没有答案”中删除这个问题。可以酌情删除或修改。


FROM:http://www.vbforums.com/showthread.php?696163-Use-variable-to-append-field-parameter&p=4264077#post4264077

BY:si_the_geek

  

这是不可能的,您只能使用参数来设置值   不能用它们做其他事情(比如字段/表名,函数,   等)。

     

如果要更改查询的其他部分,则需要使用   其他方法(如字符串构建)。在结尾的例子中   您的帖子,您应该将其添加到查询字符串,并添加值   通过参数。