交叉张贴在这里:
我正在使用 ADO 将 MS Access 中的数据检索到 Excel 中,并且我想将 Iif 语句附加到查询的 SELECT 部分。我的 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])