NULL 函数
NULL
函数是用来处理空值时比较好的选择。
1. NVL(expr1,expr2) 函数。
替换 NULL
值,表示如果 expr1
为 NULL
值,则返回 expr2
的值,否则返回 expr1
的值。
该函数要求两个参数类型一致,至少相互间能进行隐式的转换,否则会提示出错。
例如,下面的示例将查询 emp
表中的记录,如果记录中有该字段为空的,则用 0
替换。相关脚本如下:
select ename, nvl(comm, 0)
from emp;
2. NVL2(expr1,expr2,expr3) 函数。
该函数同 NVL
类似,不同的是当 expr1
为 NULL
时,函数返回 expr3
的值;当 expr1
不为空时,则返回 expr2
的值。
select ename, comm, nvl2(comm, '没有奖金', '有奖金')
from emp;
3. COALESCE(expr) 函数。
返回列表中第一个不为 null
的表达式。如果都为 null
,则返回一个 null
。
示例脚本如下:
select coalesce(null, 9 - 9, null)
from dual;
4. LNNVL(condition) 函数。
该函数可以得到除了 condition
要求条件之外的数据,包括 NULL
的条件,通常用于 WHERE
条件中。
下面的示例将得到 emp
表中奖金低于 1000
的人,并包含奖金为 NULL
的人。
示例脚本如下:
select *
from emp
where lnnvl(comm < 1000);