MS Access版本的案例何时

时间:2017-04-24 19:59:41

标签: sql ms-access-2010 case

试着弄清楚如何在MS Access中写这个我看到一个论坛谈论IIF语句,但我真的无法让它工作。

SELECT 
       case 
         when count(case when f.preferred_flg = 'Y' then 1 end) > 0 then 'Y'
         else 'N'
       end as "Indicator = Y",
       case 
         when count(case when f.preferred_flg = 'N' then 1 end) > 0 then 'Y'
         else 'N'
       end as "Indicator = N"
  FROM il_Product f

2 个答案:

答案 0 :(得分:0)

iif是MS Access的等价物,此处的其他响应可以帮助您实现这一点。但还有另一种我偶然发现的选择:SWITCH。我想我之前并不知道这一点,因为自Access 2003以来我没有认真使用MS Access。以下是如何调用它:

SWITCH(<condition1>, <output1> [, <condition2>, <output 2>, ... ])

如果没有条件成立,则返回NULL。如果您想要默认值,请创建最后一对参数TRUE, <Default Output>

当我写这篇文章时,Microsoft支持文章就是here

答案 1 :(得分:0)

可以做得更简单:

SELECT 
    IIF(ABS(SUM(f.preferred_flg = 'Y')) > 0, 'Y', 'N') AS [Indicator = Y],
    IIF(ABS(SUM(f.preferred_flg = 'N')) > 0, 'Y', 'N') AS [Indicator = N]
FROM 
    il_Product AS f