欢迎投稿

今日深度:

解决SUM函数返回为NULL,问题产生:sum求和

解决SUM函数返回为NULL,问题产生:sum求和


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

www.htsjk.Com true http://www.htsjk.com/Mysql/47162.html NewsArticle 解决SUM函数返回为NULL,问题产生:sum求和 解决SUM函数返回为NULL SUM函数的作用:计算某一字段中所有行的数值和, 使用SUM函数进行对符合条件的结果行数进行求和。 问题产生: sum 求...
评论暂时关闭