在MS Access中使用LIKE in Count(IIF()),获得NA计数

时间:2015-06-09 18:25:39

标签: sql ms-access ms-access-2013 iif

我试图在MS Access中的表中的字段中计算NA。我有多个NAs:

  1. #N / A *(即以哈希&" N / A&#34开头的NAs;以及更多不同的文字。)
  2. 的NaN
  3. NA
  4. N / A
  5. (它们对我们来说都意味着不同的东西,所以我实际上对于拥有不同的NA非常有用。)

    这适用于一个特定的NA," #N / A N / A":

    SELECT Count(IIf([Short Int % Eqy Flt] = '#N/A N/A' ,0 )) AS MyTotal
    FROM tblFirst250
    

    以上返回141,这似乎是正确的。

    返回0:

    SELECT Count(IIf([Short Int % Eqy Flt] LIKE '#N/A' ,0 )) AS MyTotal
    FROM tblFirst250
    

    上面应该返回142,因为我有141" #N / A N / A"和1" #N / A安全无效"。

    我真正想要的是在[Short Int%Eqy Flt]字段中计算所有NA的东西。请参阅我上面的NAs列表。

1 个答案:

答案 0 :(得分:2)

#模式中使用时,

Like具有特殊含义[任何单个数字(0-9)]。你可以告诉Access将其视为普通的#字符,将其放在像这样的字符范围内...... [#]

另外,我认为您希望匹配[#]N/A后跟其他字符,因此将通配符添加到模式的末尾。

SELECT Sum(IIf([Short Int % Eqy Flt] LIKE '[#]N/A*', 1, 0)) AS MyTotal
FROM tblFirst250;

我使用Sum代替Count。但如果您更喜欢Count ...

SELECT Count(IIf([Short Int % Eqy Flt] LIKE '[#]N/A*', 1, Null)) AS MyTotal
FROM tblFirst250;