解决SUM函数返回为NULL

打印 上一主题 下一主题

主题 1036|帖子 1036|积分 3108

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
解决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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

数据人与超自然意识

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表