use*_*778 5 sql parameters ado append
Cross发布在这里:
我使用ADO从MS Access检索数据到Excel,我想在我的查询的SELECT部分附加一个Iif语句.我的SQL字符串存储在文本文件中,任何参数都通过ADO追加.
我知道如何在WHERE子句中追加参数,甚至可以在SELECT语句中附加参数,如下所示:
SELECT BA, Iif(QA=[@somestring],[@somestring2], [@somestring3])
FROM myData
WHERE BA = 'some person'
Run Code Online (Sandbox Code Playgroud)
但我想要完成的是将占位符[@somestring]转换为可变长度的Iif语句,例如:
SELECT BA, [@somestring]
Run Code Online (Sandbox Code Playgroud)
占位符转换为我使用函数构建的字符串:
Iif(QA='Jon Doe', 'Jon', Iif(QA='Jane Doe', 'Jane', 'Nobody')).
Run Code Online (Sandbox Code Playgroud)
现在,我得到的结果是我传递给填充整个字段的参数的文字字符串.因此,Iif语句实际上是为每条记录写出来的,而不是由SQL进行评估.
我正在尝试做什么,或者SQL是否需要在初始命令中预定义的Iif语句的字段?
即,Iif(QA = [@ somestring],[@ sometstring2],[@ somestring3])
这是直接从 VBForums 剪切粘贴的内容。这是一个社区维基,只是为了将这个问题从“无答案”中删除。可酌情删除或修改。
作者:si_the_geek
这是不可能的,你只能使用参数来设置值,你不能用它们做其他事情(例如字段/表名称、函数等)。
如果您想更改查询的其他部分,则需要使用其他方法(例如字符串构建)。在文章末尾的示例中,您应该将其添加到查询字符串中,并通过参数添加值。