问题:
NULL值永远不会等于或不等于任何值,也包括NULL值自己,但是需要像计算真实值一样计算可为空列的返回值。例如,需要在表emp中查出所有比“WARD”提成(COMM)低的员工,提成为NULL(空)的员工也应当包括在其中。
解决方案:
使用coalesce函数将NULL值转换为一个可以用来作为标准值进行比较的真实值:
select ename,comm
from emp
where coalesce(comm,0) < (
select comm from emp
where ename = 'WARD'
)