1

我希望将条件 IIf 或 CASE 添加到 Access SQL 中的 WHERE 子句中,以根据传递的值添加一个非此即彼的条件。我在网站上看到了几个例子,但它们有点不同,我一直在努力让代码在我的情况下工作。编码:

SELECT * FROM incHC 
WHERE 
incHC.repdte=(SELECT Max(repdte) AS maxDt FROM bYrs) AND 
incHC.asset>0 AND 
incHC.eq2<>0 AND 

(
CASE WHEN recType="inst" THEN 
  incHC.orphan=0
ELSE
  incHC.orphan<=1
END
)

任何帮助深表感谢。

4

1 回答 1

2

除非我在您的查询中遗漏了某些内容,否则您应该能够在没有以下内容的情况下执行此操作CASE

SELECT * 
FROM incHC 
WHERE incHC.repdte=(SELECT Max(repdte) AS maxDt FROM bYrs) 
    AND incHC.asset>0 
    AND incHC.eq2<>0 
    AND
    (
        (
            recType="inst" 
            AND incHC.orphan=0
        )
        OR
        (
            recType<>"inst"
            AND incHC.orphan<=1
        )
    )
于 2012-09-10T18:18:10.140 回答