oracle nvl函数的使用

create table a(asd int);

insert into a values(12);

alter table a add(asdf int);

insert into a values(12,12);

这个时候第一次插入的行就少了一个字段的值,现在那个值为空

select asd ,asdf  from a;

返回值为

12  

12    12

 

select asd,nvl(asdf,0)  from a;

返回值为

12   0

12   12

 

如nvl(字段,‘x’)字段值等于null就这个函数得到的结果就是'x',

一般用于存在空值比较的情况下,比如字段a与字段b都是int型,其中一个等于null另一个为非空值,你使用a<>b是不成立的,使用此条件查询你将丢失这条本来不相等的数据,可以如此用法nvl(字段,-1)<>nvl(字段,-1),这样就可以得到想要查询的数据,当然查询数据的前提是此字段值不能有-1值才能用这种写法

 

 

 

 

你可能感兴趣的:(oracle nvl函数的使用)