【问题标题】:SQL Count not counting "NULL" in columnSQL Count 不计算列中的“NULL”
【发布时间】: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

【问题讨论】:

    标签: mysql sql sql-server database database-design


    【解决方案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)
    猜你喜欢
    • 2021-07-16
    • 2022-08-23
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 2021-06-21
    相关资源
    最近更新 更多