SQL Count 不计算列中的“NULL”

Posted

技术标签:

【中文标题】SQL Count 不计算列中的“NULL”【英文标题】:SQL Count not counting "NULL" in column 【发布时间】:2021-09-15 03:24:15 【问题描述】:

我正在学习 MS SQL 并尝试计算在记录表中输入的不等于 actionID(column) 值 21 的用户。下面是查询,但它没有给我预期的结果。它没有考虑 NULL 值。它显示计数为 0,但它应该显示结果为 1。我在 actionID 列字段中有 NULL 值

Select COUNT(*) from db.record where userID ='xyz' AND NOT actionID = 21

【问题讨论】:

【参考方案1】:

这是为 MySQL 准备的你需要一个NULL-safe 比较:

NOT actionID <=> 21

几乎所有与NULL 的比较都返回NULL。而NOT NULL 仍然是NULL

对于 MS SQL,如下所示使用它

 (actionID <> 21 OR actionID is null)

【讨论】:

谢谢!!我们将如何在 MS SQL 中执行它,因为“”给了我们错误。它试图写“is NULL”以进行安全比较,但在查询执行中仍然有错误 @NetworkEngExploringCoding 。 . .您的问题被标记为 mysql,这提供了一个 MySQL 解决方案。 谢谢!它适用于 MySQL。对于 SQL,使用它就像 - AND (actionID != 21 OR actionID is null)

以上是关于SQL Count 不计算列中的“NULL”的主要内容,如果未能解决你的问题,请参考以下文章