提出问题
查询每个员工 sal 和 comm 的和:
select ename as 姓名,sal as 薪资,comm 奖金,sal+comm 月薪小计 from emp
执行结果:
当 comm 为 null 时,其和也是 null
分析
任何值与 null 做算术运算,结果都是 null
解决
遇到上面这种情况,要对 NULL 做处理
ifnull() 介绍
当列的值时 NULL 时,返回默认值,否则返回原值。
IFNULL(列名,默认值)
解决上面问题
查询各员工的月薪,sql修改如下:
select ename as 姓名,sal as 薪资,IFNULL(comm,0) 奖金,sal+IFNULL(comm,0) 月薪小计 from emp
