2)分组函数自动忽略null现在有员工表信息如下:员工表select count(comm) from emp; //结果:4可以看出一共有14行记录,但是count(comm)的时候结果等于4,说明count函数自动过滤掉为null的comm字段。
3)有null参数的数学运算结果一定为null还是上面员工表的信息,我们查询每个员工的年薪,年薪=(工资+补贴)* 12 也就是:(sal + comm) 12;select ename , (sal + comm) * 12 as yealsal from emp; 员工年薪从结果中我们可以看到,只要别贴comm为null的,查询出来的年薪也是等于null,这也就说明了只要有null参与的数学运算,结果一定为null。
这个时候我们就需要一个单行处理函数来解决这样的问题:ifnull(‘为null的字段’ , ‘为null的时候当做什么来处理’),所以sql语句可以改成如下:select ename , (sal + ifnull(comm,0)) * 12 as yealsal from emp; 员工年薪最后我们再来看一个需求来证明:分组函数自动忽略null计算所有员工的别贴comm总和:select sum(comm) from emp;在comm别贴字段中,含有为null的值,所有查询的结果应该为null,我们执行并查看结果:员工补贴总和我们发现结果并不是null,而是自动将为null的值过滤掉了,所以我们再次证明了分组函数会自动过滤null值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)