Sql 在MS Access中使用LIKE in Count(IIF())获取NA Count

Sql 在MS Access中使用LIKE in Count(IIF())获取NA Count,sql,ms-access,ms-access-2013,iif,Sql,Ms Access,Ms Access 2013,Iif,我试图在MS Access中获取表中字段中的NAs计数。我有多个NAs: N/A*即以散列开头的NAs和N/A以及其他一些不同的文本。 楠 NA 不适用 它们对我们来说都意味着不同的东西,所以使用不同的NAs实际上很有用 这适用于一个特定的NA,不适用不适用: SELECT Count(IIf([Short Int % Eqy Flt] = '#N/A N/A' ,0 )) AS MyTotal FROM tblFirst250 上面返回141,这似乎是正确的 这将返回0: SELECT Co

我试图在MS Access中获取表中字段中的NAs计数。我有多个NAs:

N/A*即以散列开头的NAs和N/A以及其他一些不同的文本。 楠 NA 不适用 它们对我们来说都意味着不同的东西,所以使用不同的NAs实际上很有用

这适用于一个特定的NA,不适用不适用:

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]字段中计算所有NAs的内容。请参阅上面我的NAs列表。

在类似模式中使用时具有特殊含义[任何一位数字0–9]。您可以告诉Access将其作为普通字符处理,方法是将其放在如下字符范围内。。。[…]

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

选择SumIIf[Short Int%Eqy Flt]如“[]不适用*”,1,0作为MyTotal 来自tblFirst250; 我用总和代替计数。但是如果你更喜欢计数

选择CountIIf[Short Int%Eqy Flt]如“[]不适用*”,1,空为MyTotal 来自tblFirst250;
这就回答了获取所有NAs的问题:从TBLFirst250中选择SumIIf[Short Int%Eqy Flt]如“[]N/A*”或[Short Int%Eqy Flt]=“N/A”或[Short Int%Eqy Flt]=“NA”或[Short Int%Eqy Flt]=“NaN”,1,0作为我的总计,我不知道。如果有差异,我想算是赢家。两种方法都试一下,看看你是否能注意到其中的差异。