我有一个Excel的SQL查询,它运行良好,但当条件不匹配时,它会跳过特定的记录。我需要那个单元格值为NULL
的记录。我该如何做到这一点?。以下是查询:
Select [Supplier Code], [Policy Buyer] from [$vPolicyBuyerSheetName$$] where [Supplier Code] = "$vOutputSupplierCode$"
vOutputSupplierCode
取自不同的Excel文件,我正在vPolicyBuyerSheetName
中搜索该值以获得[Supplier Code]
、[Policy Buyer]
。即使where [Supplier Code] = "$vOutputSupplierCode$"
不满足,我也需要[Supplier Code]
、[Policy Buyer]
。此代码是在Excel的AutomationAnywhere
工具的数据库命令中编写的。
我尝试过SQL的CASE
语句,但没有成功,我在使用CASE
时看到的错误是
"- Unrecognized keyword WHEN."
Select [Supplier Code], [Policy Buyer] CASE WHEN [Supplier Code] = "$vOutputSupplierCode$" THEN [Policy Buyer] ELSE "null" END from [$vPolicyBuyerSheetName$$]
SQL引擎告诉问题是什么:
Unrecognized keyword WHEN
当查询Excel文件时,您很可能使用ACE OLEDB驱动程序,该驱动程序不支持CASE WHEN
语法,您需要使用IIF()
函数。如果你有MS Access,你可以在那里使用它来构建和测试你的SQL,如果你不习惯ACE OLEDB的有限SQL,这非常方便。
同样的问题见这里。