在数据库的操作中经常会遇到一些非空的操作,这时就是使用到NVL和NVL2
一,NVL函数是一个空值转换函数
NVL(表达式1,表达式2)
如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值。 该函数的目的是把一个空值(null)转换成一个实际的值。其表达式的值可以是数字型、字符型和日期型。但是表达式1和表达式2的数据类型必须为同一个类型。
select
t.login_name,t.login_passwd,t.create_time,
nvl(t.login_passwd,t.login_name)
from
t_bh_login t
where
t.login_name = '王君'
展示结果
当t.login_passwd为空时返回的为t.login_name的值,如果不为空返回的为t.login_passwd的值
二 ,NVL2(表达式1,表达式2,表达式3)
如果表达式1为空,返回值为表达式3的值。如果表达式1不为空,返回值为表达式2的值。
select
t.login_name,t.login_passwd,t.create_time,
nvl2(t.login_passwd,t.login_name,t.create_time)
from
t_bh_login t
where
t.login_name = '王君'