【问题标题】:Wrong value returned in sql query using WHERE and COUNT使用 WHERE 和 COUNT 在 sql 查询中返回错误值
【发布时间】:2018-10-05 02:43:06
【问题描述】:

我有一个名为category_id 的列,其值可以是数字或空值(每行123 或空值)。我必须使用以下方法选择具有空值的类别 id 的总数 (COUNT):

SELECT COUNT(category_id) 
FROM products 
WHERE category_id = NULL;

它返回 0(错误值)。

【问题讨论】:

标签: sql count null where


【解决方案1】:

Count(category_id) 只会计算 category_id 不为空的记录。 为了与 NULL 进行比较,SQL 语法是“IS NULL”,而不是“= NULL”。

计算总使用量:

SELECT COUNT(1) FROM products WHERE category_id IS NULL ;

【讨论】:

    【解决方案2】:

    只需像这样使用IS NULLcategory_id

    SELECT COUNT(category_id) 
    FROM products 
    WHERE category_id IS NULL;
    

    【讨论】:

      【解决方案3】:

      COUNT 是一个聚合函数的例子,你需要使用 GROUP BY 试试这个:

      SELECT COUNT(category_id) AS n FROM products WHERE category_id IS NULL GROUP BY category_id
      

      【讨论】:

      • 不,因为他只是选择计数,所以真的没有什么可以使用GROUP BY on.....
      【解决方案4】:

      试试这个:

      SELECT COUNT(category_id) FROM products WHERE category_id IS NULL;
      

      NULL值不能用'='操作符比较,所以用'IS'关键字代替'='

      【讨论】:

        【解决方案5】:

        在 where 子句中使用:category_id IS NULL 而不是 category_id= NULL

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-06-10
          • 1970-01-01
          • 1970-01-01
          • 2016-03-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-06
          相关资源
          最近更新 更多