【问题标题】:Calculating blank fields in MS Access via a SQL query通过 SQL 查询计算 MS Access 中的空白字段
【发布时间】:2014-09-24 14:00:03
【问题描述】:

我有一张名为“DEMO”的表格。在“性别”列下,我想知道我有多少个空白单元格?

我试过了:

SELECT Count(SEX) AS CountIfSexNull FROM DEMO WHERE (((DEMO.SEX) Is Null));

但是,得到的结果为 0。

当我使用“查询设计”选择“性别”列并手动过滤空白时,我得到的值为 2。

该查询在数字字段(即 AGE)上运行良好,我得到了一个正确的答案,除了我使用“0”而不是“Is Null”,即

SELECT COUNT(DEMO_AGE) AS CountIfAgeNull FROM DEMO WHERE (DEMO.DEMO_AGE = 0);

我正在使用带有 .accdb 数据库的 MS Access 2010。

【问题讨论】:

  • "" 或 " " 不是 NULL - 也许您的列中有默认值。否则:更多信息 - 字段类型...
  • Fionnuala 的回答是正确的。问题在于您尝试计算其中没有数据的列,这就是它显示 0 的原因。通过使用 COUNT(*),它会查看行而不是给您正确的答案。

标签: sql ms-access ms-access-2010


【解决方案1】:

COUNT [Fieldname] 不计算空值,使用 ID 或 *,例如:

SELECT Count(*) AS CountIfSexNull
FROM DEMO
WHERE DEMO.SEX Is Null

参考:In SQL is there a difference between count(*) and count(<fieldname>)

【讨论】:

    猜你喜欢
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    相关资源
    最近更新 更多