首页 > 其他分享 >解决SUM函数返回为NULL

解决SUM函数返回为NULL

时间:2023-10-13 14:45:15浏览次数:34  
标签:返回 函数 SUM COALESCE NULL select

解决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,COALESCE,NULL,select
From: https://www.cnblogs.com/ProsperousEnding/p/17762065.html

相关文章

  • CF1886A Sum of Three 题解
    Question给定一个正整数N,我们需要找三个不同的整数x,y,z,使得N=x+y+z,其中下x,y,z不能被三整除solution我们把N%3会有一些余数,我们针对余数来讨论,其中我们只关注xyz的余数如果余数为0那么也就可能是1+1+1,或者2+2+2,但是考虑到xyz不同,所以如果\(xyz\%3\)相同的话,\(xyz/3\)......
  • C语言 - 内联函数
    在C语言中,内联函数(InlineFunction)是一种用于优化代码执行效率的机制。内联函数在编译时将函数的代码直接插入到调用它的地方,而不是通过函数调用的方式执行,从而减少了函数调用的开销,提高了代码的执行速度。C语言的内联函数使用inline关键字来声明。将函数声明为内联函数只是给......
  • python -- 定义函数 def 后面的 ->,:表示的含义
    -> 常常出现在python函数定义的函数名后面,为函数添加元数据,描述函数返回的类型。: 表示参数的类型建议符示例:defadd(x:int,y:int)->bool:if(x>y):returnTrueelse:returFalse这里,表明了函数的参数传入为int类型,输出的类型为bool类型。......
  • C++ 函数 const
    分为两种情况:在函数前加constconstintget_value(){}表示函数返回值为const。使用指针时有用。在函数后加constLinkList_length()const{}表示函数不修改class的成员。......
  • 2023-10-12 javac : 无法将“javac”项识别为 cmdlet、函数、脚本文件或可运行程序的
    找到你的jdk安装路径/bin,复制并扔到环境变量中去即可,如:   ......
  • C语言函数和指针的关系之三(完结)
     指针保存函数的地址(函数指针)1、函数指针的概念:咱们定义的函数,在运行程序的时候,会将函数的指令加载到内存的代码段。所以函数也有起始地址。c语言规定:函数的名字就是函数的首地址,即函数的入口地址咱们就可以定义一个指针变量,来存放函数的地址。这个指针变量就是函数指针变量......
  • 05_rust的函数、注释
    rust的函数声明函数使用fn关键字,针对函数和变量名,rust使用snakecase命名规范,即所有字母小写,单词间用下划线分开。fnmain(){test_function();}fntest_function(){println!("testfunc");}rust比较特别的是,不像c、python等语言,自定义函数在main也能调用。函......
  • C++内置函数用法
    1-substr函数(字符截取函数)格式1:substr(stringstring,inta,intb)string是需要截取的字符串;a是截取字符串的开始位置;(注:当a=0或1时,都是从第一位开始截取)b是要截取字符串的长度;格式2:substr(stringstring,inta)string是需要截取的字符串;a可以理解为第a个字符开始截取后面所有......
  • 2023.10.12python练习关于函数
    #让20以内的奇数写入函数里然后输出三遍defnumber():a=-1whilea<19:a+=2print(a,end="")b=1whileb<=3:b+=1number()print()#输出5次20以内的奇数并输出5次9*9乘法表,都写入一个函数里defwww():x,y=1,1z=......
  • C# Webapi 简单的依赖注入-构造函数
    控制器部分:usingMicrosoft.AspNetCore.Mvc;usingWebApplication1.IServices;usingWebApplication1.Utility.SwaggerExt;namespaceWebApplication1.Controllers{[ApiController][Route("[controller]")]//指定当前的控制器是哪个Swagger版本的指定给......