一:首先要明确,mysql中 sum() 函数是不统计null的,即使是sum(多个字段),其中某一个字段为null也不行

例: id   val 

      1     1

      2   null

      3     3

sum(val) 结果为4,在计算是null值不会转为0进行相加,而是直接舍去

sum(id + val) 结果为8,其中第二行因为val=null ,所以整个舍去;

二:在统计数据时,如果结果为null,怎么转成0呢?

1.语法: IFNULL(字段,默认值)           即: IFNULL(字段,0)

2.使用COALESCE函数,改函数依次判断所有条件并且返回第一个不为null的值,

  语法:COALESCE(字段1,字段2......)      即: COALESCE(sum(字段),0)

3.case WHEN 条件1 THEN 结果1  .. ELSE 其余结果 END 

   即: case when isnull(sum(字段)) then 0 else sum(字段) end

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐