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