Cross Here Here:
我正在使用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])
答案 0 :(得分:0)
这是VBForums的直接剪切和粘贴。这是一个社区维基,只是为了从“没有答案”中删除这个问题。可以酌情删除或修改。
BY:si_the_geek
这是不可能的,您只能使用参数来设置值 不能用它们做其他事情(比如字段/表名,函数, 等)。
如果要更改查询的其他部分,则需要使用 其他方法(如字符串构建)。在结尾的例子中 您的帖子,您应该将其添加到查询字符串,并添加值 通过参数。