翼度科技»论坛 编程开发 mysql 查看内容

解决SUM函数返回为NULL

10

主题

10

帖子

30

积分

新手上路

Rank: 1

积分
30
解决SUM函数返回为NULL

SUM函数的作用:计算某一字段中所有行的数值和, 使用SUM函数进行对符合条件的结果行数进行求和。
问题产生:

sum 求和时会对 null 进行过滤,不计算,但如果没有返回结果,则sum 函数的返回值为 null,不是 0:
解决方式:

1. IFNULL

使用IFNULL函数进行查询,判断第一个参数是否为null,如果是 则返回结果为第二个参数(数值自定义):
select IFNULL(SUM(number),0)
2. COALESCE

使用 COALESCE函数,COALESCE()函数可以接收多个参数,并返回第一个非 NULL的参数。如果所有参数都为 NULL,则 COALESCE() 函数返回 NULL。
select COALESCE(NULL,NULL,NULL,0) 此时返回0
select COALESCE(SUM(number),0) 此时等同于 IFNULL
3. CASE表达式

使用CASE表达式,CASE WHEN语法类似if..else进行校验判断
select(CASE WHEN SUM(ad.times) IS NULL THEN 0 ELSE SUM(ad.times) END ) total

来源:https://www.cnblogs.com/ProsperousEnding/p/17762065.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具