00:00
好,下一个问题呢,咱们叫空值的运算。空值的运算。啥意思呢?看这计算员工的年薪加上奖金。加上奖金来。好。那么这块已经告诉你怎么计算了是吧,查询。首先呢,咱们把这个员工编号写出来哈,哎,咱知道第几条第几条,然后是月薪。来自于员工表。这样的话,下边显示的呢,就是每个员工的月薪OK。啊,然后呢,接下来他说年薪,那就他说是乘16哈,那就乘16。说4万没问题吧,这都没问题,然后他说年薪不行,我还要给你补上奖金的,那也就是说这个是年薪在它的后边再加上。
01:02
奖金这个列OK。哎,执行。出事了。完了完了就完了,没了是吧,而且往后看会发现只有有奖金的这几个人,他结果是没什么问题的。没有奖金的这些人,连基本的工资都没了。哎,这是咋回事呢?然后你就硬看,其实语法上根本就没有任何错误,就是这么计算的。但是需要注意的是。空值,因为咱们有些员工是没有奖金的,对吧,空值参与计算。结果为空。换句话说。零加空等于空。1万加空仍然等于空,OK,不管你是啥,只要你跟空进行运算,结果就是空。
02:07
这不行啊,咱得解决这个问题吧。对吧,来怎么解决呢,这写着呢,Oracle空值经过运算后永远为空哈,下边来。使用一个函数。使用一个函数了,来看这个函数怎么写的啊。啊,NVL函数,这不是一啊,是L。哎,函数运就可运算空值,它是里边写两个参,两个参。如果参数一为空,则返回参数二。他啥意思啊?就比如说这个是A是吧。这个是B哈。看第一条,也就是说如果A是空值,则整个函数得到的结果是不是B啊?OK,再看第二个,第二个啊,那么如果参数一不为空,也就是说这个A这个位置它不是空的,它比如说有值它是十。
03:08
那么整个表达式返回。也就是说返回参注意。这个有点类似于咱们的。三元运算。三元运算。或者三步运算是吧。就是类似啊,好了,咱们来看一看怎么用啊,看清这个逻辑,看清了吗?如果它是空,则返回它。如果它不是空,则返回它。是这个意思吧。来看好怎么用的,这么写。嗯,我查询ID对吧,然后月年薪加上这个奖金,这个奖金这块怎么运算的啊。如果奖金为空,则整个加的是几啊?OK,如果奖金为空加零是吧?那么如果这个值奖金不为空呢?
04:05
加奖金对吧,好嘞,就是这个意思啊,咱们把这个写上。怎么做呢,这么做。改造。改造后,哎。Copy过来,哎,我去。把它改造了啊。加上这是这个判断空不空的列吧。看好了怎么弄NVL2个参一和二对吧。第二个值写个零,第一个值是列名。这样的话,你看如果它为空,则加零,不为空,加本身。来,走你。是不是解决了?解决了。加上这么一个函数,就解决这个问题了。OK,这个就是咱们空值运算的一个处理方式,使用NVR这个函数。
我来说两句