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

解决SUM函数返回为NULL的更多相关文章

  1. 关于SQL语句中SUM函数返回NULL的解决办法

    SUM 是SQL语句中的标准求和函数,如果没有符合条件的记录,那么SUM函数会返回NULL. 但多数情况下,我们希望如果没有符合条件记录的情况下,我们希望它返回0,而不是NULL,那么我们可以使用例如 ...

  2. Access数据库中Sum函数返回空值(Null)时如何设置为0

    在完成一个Access表中数据统计时,需要统计指定字段的和,使用到了Sum函数,但统计时发现,指定条件查询统计时有可能返回空值(Null),导致对应字段显示为空白,正常应显示为0.基本思路是在获取记录 ...

  3. sql 中sum函数返回null的解决方案

    SUM 是SQL语句中的标准求和函数,如果没有符合条件的记录,那么SUM函数会返回NULL. 但多数情况下,我们希望如果没有符合条件记录的情况下,我们希望它返回0,而不是NULL,那么我们可以使用例如 ...

  4. 在mybatis中使用sum函数返回对象为Null

    首先大家看一下我的XML中的SQL .DAO  和实体对象 XML DAO PO 乍一看 没毛病. 但是在Mybatis中使用sum函数,如果返回值是0(就是你在Navicat中运行的的sql正常,结 ...

  5. Flutter 踩坑之build函数返回了null

    今天遇到一个bug,内容都正常显示没问题,但是控制台里报错,如图: 翻译了下,说是函数不能返回空值,搜索了下,网上相同问题的是少写了个return,我检查了下也没发现少return的,后来突然发现if ...

  6. JDBC中如何获取SUM函数返回的结果

    代码如下: ResultSet rs = stmt.executeQuery("SELECT sum() from...."); int keyValue = -1; if (rs ...

  7. Mysql与Sql server,Sum函数跟Count函数

    两者均是统计类函数,都不计算NULL字段!!! 单纯计算行数的话,count的效率比sum的效率高 MySQL SUM()函数介绍 SUM()函数用于计算一组值或表达式的总和,SUM()函数的语法如下 ...

  8. SQL SUM() 函数

    SUM() 函数 SUM 函数返回数值列的总数(总额). SQL SUM() 语法 SELECT SUM(column_name) FROM table_name SQL SUM() 实例 我们拥有下 ...

  9. 31.SUM() 函数

    SUM() 函数 SUM 函数返回数值列的总数(总额). SQL SUM() 语法 SELECT SUM(column_name) FROM table_name SQL SUM() 实例 我们拥有下 ...

  10. 松软科技web课堂:SQLServer之SUM() 函数

    SUM() 函数 SUM 函数返回数值列的总数(总额). SQL SUM() 语法 SELECT SUM(column_name) FROM table_name SQL SUM() 实例 我们拥有下 ...

随机推荐

  1. 什么是cursor?怎么使用cursor?

    Cursor 在Android查询数据时就是通过Cursor类来实现的.当我们使用SQLiteDatabase.query()方法时,就会得到Cursor对象,Cursor所指向的就是每一条数据. 举 ...

  2. vscode设置将英文界面设置为中文?

    如果您希望将 Visual Studio Code(以下简称VSCode)的界面从英文设置为中文,可以按照以下步骤进行: 打开 VSCode 编辑器,并进入"扩展"菜单. 在搜索框 ...

  3. 在.net中通过自定义LoggerProvider将日志保存到数据库方法(以mysql为例)

    在.NET中,Microsoft.Extensions.Logging是一个灵活的日志库,它允许你将日志信息记录到各种不同的目标,包括数据库.在这个示例中,我将详细介绍如何使用Microsoft.Ex ...

  4. Java的构造函数

    构造函数就是名字相同,名字前面可以不加东西,要加就只能加public或者其他的访问权限,其作用是赋初值.

  5. [ABC263G] Erasing Prime Pairs

    Problem Statement There are integers with $N$ different values written on a blackboard. The $i$-th v ...

  6. [ABC261B] Tournament Result

    Problem Statement $N$ players played a round-robin tournament. You are given an $N$-by-$N$ table $A$ ...

  7. org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException报错问题

    这个原因是 高版本SpringBoot整合swagger 造成的 我的项目是2.7.8 swagger版本是3.0.0 就会出现上面的报错 解决方式: 1.配置WebMvcConfigurer.jav ...

  8. 最好用的AI换脸软件,rope下载介绍

    随着AI技术的广泛运用,市面上的换脸软件也多了起来,今天给各位介绍其中的王者Rope! 先上两个动图,给大伙看看效果 rope是如何实现这种自然的效果呢?这得益于机器学习技术的不断发展,rope经过深 ...

  9. crictl命令

    containerd提供了ctr命令行用于镜像管理容器,但功能比较简单 所以一般会用k8s提供的crictl命令. 该命令的特点是:只要符合K8S的CRI接口的,都可以使用. 另外一点就是,cricr ...

  10. 已解决:若依更换日志EasyExcel框架导出报错 java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader

    先描述一下当时的场景 回忆 看到出错了,我就想可能是哪个路径写错了,或者导依赖名字写对,或者说是多了少了标点符号什么的. 然而,还是想简单了,检查重启后发现问题并没有解决. 于是就把所有我改过的地方检 ...