首先我先说一下什么是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;