3.12 在运算和比较时使用NULL值

问题:
NULL值永远不会等于或不等于任何值,也包括NULL值自己,但是需要像计算真实值一样计算可为空列的返回值。例如,需要在表emp中查出所有比“WARD”提成(COMM)低的员工,提成为NULL(空)的员工也应当包括在其中。

解决方案:
使用coalesce函数将NULL值转换为一个可以用来作为标准值进行比较的真实值:

select ename,comm
    from emp
    where coalesce(comm,0) < (
        select comm from emp 
            where ename = 'WARD'

    )

posted @ 2017-09-14 00:06  屠魔的少年  阅读(164)  评论(0)    收藏  举报