从多个表中返回缺失值
比如说查询每个员工的部门,且查看部门的所有员工。
这里考虑一种情况就是可能有部门没有员工,同样有些员工还没有分配部门。
解析使用 full outer join.
select d.DEPTNO,d.DNAME,e.ENAME
from DEPT d full outer join EMP e
on (d.DEPTNO=e.DEPTNO)
在运算中比较null
因为null值是不能比较的,那么可以把null值转换为0;
select ename,comm
from EMP
where coalesce(COMM,0)<(select comm from EMP where ename='WARD')
coalesce返回一个传入参数的非空值。
如果我们使用coalesce,像这样:
select ename,comm
from EMP
where COMM<(select comm from EMP where ename='WARD')
那么就会自动排除null项。