Oracle nvl()函数处理null值

时间:2024-08-01 09:35:08

首先我先说一下什么是Oracle的函数,曾经有一位大牛,让我说说熟悉的oracle函数,我当时竟一头雾水,心想“什么oracle函数啊,不就是那些SQL语句吗“,当时我竟然说出了select之类的回答,他几乎要生气,反复强调:“我说了是Oracle函数”,后来他讲,函数可以理解为带有括号的(),后来我慢慢地懂事了之后,就经常百度oracle函数,每次有面试或者复习的时候,我都刻意练练SQL的函数。

使用nvl函数处理null值:

Eg:计算每个人的全年的收入包括月薪和年终津贴

(1)           年薪是(月薪)*12+绩效;

(2)           但绩效(comm)有null值,当comm是null值时,月薪+绩效的结果也是null值;

(3)           所以,当comm为null值时,需要把它当做0来处理。哪个函数能胜此重任呢?nvl();

(4)           nvl()相当于一条if..else语句,如果字段不为空,取原值;

select ename,sal*12 +nvl(comm,0) as 年薪 from emp;