问题:在一些行中包含空值,需要使用非空值来替代这些控制。
解决方案:使用coalesce函数用实际的值来替换空置,语句如下:
select coalesce(comm,0) from emp
讨论:
coalesce 函数有一个或多个参数。该函数返回列表中的第一个非控制。在这个解决方案中,只要comm非控,就返回comm的值,否则返回0。
在使用空值的时候,最好是利用dbms提供的内置功能。许多情况下有几个函数都可以完成这项任务。coalesce可以用于所有的dbms。另外,对于所有的dbms,也都可以使用case,如下所示:
select case
when comm is null then 0
ekse comm
end
from emp
尽管可以使用case将控制转换为非空数值,但是可以看到,使用coalesc更为容易简洁。