0

如何使用case when带有 oledb 的语句来生成 excel 文件?
喜欢select prodid, case prodid when 1 then 'fine' when 2 then 'good' end

4

2 回答 2

4

OLEDB 只是排序的“中继”,只是将查询重复到底层源。

我不相信 Excel 支持 CASE WHEN 构造,因此您无法使用它,即使通过 OLEDB 也是如此。

您可以改用 Excel 特定的习惯用法IIF() function,如 CodeByMoonlight 的回答中所述。如前所述,对于需要超过 3 或 4 个案例的情况,嵌套 IIF() 调用的需要是一个相当混乱的提议。

于 2009-11-16T12:48:49.077 回答
4

查询 Excel 时,您必须使用 IIF 而不是 CASE,例如

从 MyExcel 中选择 prodid,IIF(prodid = 1,'fine',IIF(prodid = 2,'good',''))

如您所见,它很快就会变得一团糟。如果您只有双向评估,这还不错,但在您的代码中,您是否只有 2 个可能的 prodid 值或更多值尚不清楚。我的示例假设还有其他值,因此是嵌套的 IIF。

于 2009-11-16T13:01:33.087 回答