MS Access SQL Case表达式时

问题描述 投票:0回答:2

我试图将一个代码块从SQL Server Management Studio转换为Access数据库,并且我的Case When表达式遇到了一些问题。

我在案例中遗漏了什么?如果它与MS Access查询兼容?

Case WHEN E.MemberStartDate <= "2018-01-01 AND E.MemberEndDate >= "2018-12-31" 
THEN "" 
WHEN "2018-01-01" <= E.MemberEndDate AND "2018-01-31" >= 
E.MemberStartDate THEN "X" ELSE "" END AS Cov1Jan
tsql ms-access case-when
2个回答
2
投票

试试IIf和octothorpes(#):

IIf(E.MemberStartDate <= #2018/01/01 AND E.MemberEndDate >= #2018/12/31#, 
    Null,
    IIf(#2018/01/01# <= E.MemberEndDate AND #2018/01/31# >= E.MemberStartDate, 
        "X", 
        Null)) AS Cov1Jan

1
投票

您缺少MS-Access不支持case。所以:

switch(E.MemberStartDate <= "2018-01-01 AND E.MemberEndDate >= "2018-12-31", "", 
       "2018-01-01" <= E.MemberEndDate AND "2018-01-31" >= 
E.MemberStartDate, "X"
       1=1, "") AS Cov1Jan
© www.soinside.com 2019 - 2024. All rights reserved.