文档章节

SQL -- ifnull(sum(属性) vs 对象.属性)

求是科技
 求是科技
发布于 2016/07/22 14:59
字数 284
阅读 32
收藏 0
点赞 0
评论 0

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

输入图片说明
个数肯定不能为null返回给前端,因此需要对结果进行处理,当结果为null的时候返回0,否则返回结果数,正常情况下,大伙都会想到mysql 的ifnuu函数,如下
输入图片说明
我之前写过一篇文章,关于ifnull,请查看
http://my.oschina.net/u/2312022/blog/703396
在这里解释如下
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>针对上述问题,采用如下方法也能解决问题

输入图片说明

© 著作权归作者所有

共有 人打赏支持
求是科技
粉丝 89
博文 453
码字总数 228281
作品 0
成都
后端工程师
SUM统计使用CASE WHEN

SUM统计使用CASE WHEN 如下建立表结构, create table test (id int not null AUTO_INCREMENT,type int not null,value int not null,primary key (id)); INSERT INTO test (type,value)VAL......

秋风醉了
2015/07/08
0
0
mysql中sum()函数相减结果为空的处理

我有两张表,一张工资表income,消费表payment,需要SQL查询出某一个人在本月的消费余额。当消费表记录为空或者工资表记录为空时,两个sum()函数相减MySQL显示结果为空值。 没有做判断空值的...

Ethel_oo
04/20
0
0
这个SQL该咋整?@SQL大神

TableA:aid(自增列),class(部门编号),value(绩效得分) TableB(id(部门编号),name(部门名称)) 想统计部门绩效分总和,SQL 经过指点得到 SELECT name,IFNULL(sum(),0) as total F...

水人
2015/09/08
229
5
mybatis sql中查询类型为int的字段,返回null的异常

l中查询类型为int的字段,返回null的异常 项目中用mybatis3.x,用sql查询某个表类型为int的字段,那个表是空表,没有数据,结果抛异常了,原因是在对象中的属性为int,空表时,sql查询出来的是...

Atom_me
2015/10/29
9.4K
1
Hibernate 中中的formula属性

Property元素中的formula允许对象属性包含导出值,比如sum、average、max等的结果。如: <property name="averagePrice" formula="(select avg(pc.price) from PriceCatalogue pc, SelectedI......

街头浪子
2016/01/18
136
0
最近编写mybatis文件的sql的时候我明明传的是String类型但是他一直爆类型转换异常,String类型不能转换为MAp类型,但是他有时候有时候好的,有时候就爆这样的错,求解

最近编写mybatis文件的sql的时候我明明传的是String类型但是他一直爆类型转换异常,String类型不能转换为MAp类型,但是他有时候有时候好的,有时候就爆这样的错,求解 sql如下 SELECT * FROM( S...

围殴额度
2017/06/15
92
2
两张表SUM,再求百分的SQL问题

表A examname 考卷名称 examid 考卷id chapterid 章节id stuTimeSet 规定学时 试卷6 6 1 20 试卷6 6 2 30 试卷6 6 3 50 测试4 4 1 50 测试4 4 2 50 表B userid 用户id examid 考卷id chapte......

程序猿小明
2015/05/08
463
5
MySQL交叉表:纵向数据显示为横向。

最近在处理一些数据,要实现纵向数据横向显示的效果,在百度花费多个小时东征西伐南讨北战之后,终于找到一个概括的较为详尽的文章,特地转载过来以便更多的人解决相关问题,希望原作者不要介...

MiniBu
2012/10/15
0
0
ArcGIS 10.1 for Server 服务端查询统计 -ArcGIS API for Silverlight 实现

本博文编写时的软件件环境,为 ArcGIS Server 10.1sp1 ,ArcGIS API for Silverlight 3.0,VS2010sp1 需求:我有一堆点 ,分为不同的种类,每个点都有一个value属性,我要统计某一空间范围内不...

长平狐
2012/11/28
2.1K
0
数据库 UPDATE多条记录不同值,同时UPDATE多个字段

需求 如下两张表student(学生表)、score(测试成绩表) 现需要统计:2015-03-10日之后,性别 age=1 的测试成绩的 总分 与 平均分。 要求:使用一个SQL统计score表,将结果更新到student表的...

北國丶江山
2016/09/14
11
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Android 获取各大音乐平台的真实下载地址

废话 电脑使用谷歌浏览器或者QQ浏览器的时候。。。。。。。说不清楚,还是看图吧 大概意思就是,只要网页上需要播放,只要能播放并且开始播放,这个过程就肯定会请求到相关的音乐资源,然后就...

她叫我小渝
31分钟前
0
0
shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
今天
2
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
2
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
0
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0
HFS

FS,它是一种上传文件的软件。 专为个人用户所设计的 HTTP 档案系统 - Http File Server,如果您觉得架设 FTP Server 太麻烦,那么这个软件可以提供您更方便的档案传输系统,下载后无须安装,...

garkey
今天
1
0
Java IO类库之BufferedInputStream

一、BufferedInputStream介绍 /** * A <code>BufferedInputStream</code> adds * functionality to another input stream-namely, * the ability to buffer the input and to * sup......

老韭菜
今天
0
0
STM 32 窗口看门狗

http://bbs.elecfans.com/jishu_805708_1_1.html https://blog.csdn.net/a1985831055/article/details/77404131...

whoisliang
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部