博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL -- ifnull(sum(属性) vs 对象.属性)
阅读量:5746 次
发布时间:2019-06-18

本文共 558 字,大约阅读时间需要 1 分钟。

hot3.png

今天工程时,遇到一个情况,计算t_user_listen表中QUESTION_ID=xx时,LISTEN_NUM的个数

输入图片说明

个数肯定不能为null返回给前端,因此需要对结果进行处理,当结果为null的时候返回0,否则返回结果数,正常情况下,大伙都会想到mysql 的ifnuu函数,如下
输入图片说明
我之前写过一篇文章,关于ifnull,请查看
在这里解释如下
1.查询的对象本身为null,如下图
输入图片说明
2.对象.属性为null
输入图片说明
3.ifnull(对象.属性,0)
输入图片说明
总结:很明显,
1>对象为null时,ifnull(对象.属性,0)是失效的 2>SELECT IFNULL(SUM(tul.LISTEN_NUM),0) FROM t_user_listen tul WHERE tul.QUESTION_ID = '51230958430954308' 这种情况是有效的,见下图
输入图片说明
3>情况2之所以满足ifnull,我估计是使用了sum()函数的原因,使用sum函数后得到的结果就不是一个对象了,是一个纯粹的数字(或null)了,在对纯粹的数字(或null)进行ifnull判断,肯定是有效的。
4>针对上述问题,采用如下方法也能解决问题

输入图片说明

转载于:https://my.oschina.net/u/2312022/blog/716214

你可能感兴趣的文章
FreeNAS8 ISCSI target & initiator for linux/windows
查看>>
cvs文件提交冲突解决方案
查看>>
PostgreSQL数据库集群初始化
查看>>
++重载
查看>>
Rainbond 5.0.4版本发布-做最好用的云应用操作系统
查看>>
nodejs 完成mqtt服务端
查看>>
Spring IoC容器初的初始化过程
查看>>
sql server 触发器
查看>>
[工具]前端自动化工具grunt+bower+yoman
查看>>
自动化测试之WatiN(2)
查看>>
关于完成生鲜电商项目后的一点总结
查看>>
noip2012 普及组
查看>>
第二阶段 铁大Facebook——十天冲刺(10)
查看>>
Java判断是否为垃圾_Java GC如何判断对象是否为垃圾
查看>>
多项式前k项和java_多项式朴素贝叶斯softmax改变
查看>>
java数组只能交换0下标和n_编程练习-只用0交换排序数组
查看>>
centos7安装mysql视频教程_centos7安装mysql(完整)
查看>>
php图片赋值,php如何优雅地赋值
查看>>
【探索HTML5第二弹01】HTML5的前世今生以及来世
查看>>
Failed to connect to remote VM. Connection refused. Connection refused: connect
查看>>