在 Microsoft Access 中使用 CASE WHEN 语句

using CASE WHEN statements in Microsoft Access

我知道如何编写 CASE WHEN 语句,但这里的问题是将它们翻译成 Microsoft Access“语言”。 我已经尝试使用 IF 语句但它没有用,我已经查找了如何在 Access 中使用 CASE WHEN 语句但是复制我发现的内容不起作用,我很无能.. 以下是我应该翻译的代码:

SELECT clienti.nome, clienti.cognome

FROM ((clienti

INNER JOIN contiCorrenti ON clienti.ID = contiCorrenti.IDCliente)

INNER JOIN prestiti ON contiCorrenti.IBAN = prestiti.IBAN)

WHERE prestiti.durata < 

              CASE WHEN prestiti.rateizzazione = "mensile"

              THEN 60

              WHEN prestiti.rateizzazione = "annuale"

              THEN 5

              ELSE 0

              END;

Access 不支持 SQL 中的 CASE - 使用 IIf()Choose()Switch().

durata < IIf(rateizzazione = "mensile", 60, IIf(rateizzazione = "annuale", 5, 0))

durata < Switch(rateizzazione = "mensile, 60, rateizzazione = "annuale", 5, True, 0)

Switch()Choose() 是 VBA 内部函数调用,但 IIf() 是 SQL,因此执行效率可能更高。

MS Access 不支持 case 语句。相反,您可以使用“立即 if”函数 (iif) 并针对多个条件嵌套它们:

where prestiti.durata < iif (prestiti.rateizzazione = "mensile", 60,
                        iif (prestiti.rateizzazione = "annuale", 5, 0))