00:00
好,接下来我们看一下这个6.7这节啊,6.7这一节,这一节呢,整个的在整个的函数当中,也就查询当中是非常重要的一个点,特别是哪几个呢?来看一下。这些东西啊,而且尤为重要的是这个。窗口函数,我不知道你们做开发的有没有用过。有人用过吗?用过Oracle的应该知道,Oracle里面其实是有窗口函数的,而现在MY斯八里面也有MY8,咱们用的是六对吧。5.6嘛,你GDK,你JD8,你用的是八点几吗。是点啊,所以买这个一样,买这个我们用的是六点,买这个有什么三点几点吗。有吗?去了解一下,就类似于我们说的吗?这你现在说不是加八吗。他是点吗?他不是一点吗?对吧?啊那个一样,我们说的80点这版本没几个啊,没几个是两个小五点七,5.8,不是说八点几啊好,那我们看一下,其实它也有的,那这个呢,我们来先数一下啊,第一个呃,前面几个呢,稍微简单一点啊,稍微简单一点,你看就会啊第一个空磁段赋值。
01:21
那这个什么意思呢?是这样的这个函数啊,可以传两个东西。如果第一个为空,就用第二个来代替。能听懂吗?就第一个为none的时候,用第二个来代替。啊,用第二个来代替,那我们看一下这里面呢,有很多人的这个科,就是他的一个绩效考核,应该是一个奖金类的。呃,From emp,这张表里应该有的人是没有奖金的。对吧,啊,没有奖金的,但是没有奖金呢,我们觉得没有奖金呢,不合适,我们再给他一个什么,给他一点啊,给他一个零是么?啊那那行吧,你们反正还挺高的,那用我们刚才那个函数叫NVL。
02:06
好,按没有来赋值。NVL括号,那这个时候你就不能写一个参数了,给他一个零是吧,给他一个零。那就好多了是吧,啊,就没有奖金就是零嘛啊不要闹,不要空着,是这意思啊,得给到值啊,看没有好这个时候我们后面给了一个值吧,假如说呃,没有这个薪资的呢,我用他这个员工编号代替。也可以对吧,也就是说第二个位置啊,你可以传一个列,也可以传一个固定值啊,可以一个固定值,那我们用员工编号,那应该是呃EP number对吧。是叫那个参数啊,走一下,哎,刚才没闹呢,是不是员工编号啊,因为这个地方你写的之前是第一个是大类型,所以呢,它外加了一个点零啊,它类型要保持一致,这意思啊,刚才我们加的零,它是不是也0.0啊,对吧?啊,它保持这个数据的一致性啊,也就是说这个地方。
03:05
啊,这个呢,比较简单啊空。字段赋值啊,空字段赋值,其实在那个就是在Oracle当中呢,像这种也有个m ma函数,它还有一个这个功能,我们看一下这有没有,就是说假如说第一个字段。第一个字段为空了,我们是不是用后面的字段来代替啊啊呃,像有的函数当中呢,它有一个这个功能,就是它可以传三个。一空了用二代替,二是不是有可能还是空的,那用三代替啊,就这意思好,那二呢,我们看一下这里边呢,有一个,嗯。我先把它让它报错啊,那个亲,我看一下那个字段名啊。P,这里面呢,有一个这。还记得这个字段叫什么东西吗?他的一个领导吧,他领导,但是作为领导的人是不是没有领导啊,也就是说这个里面是不是也有可能为空啊,呃,那select MV啊,我们看一下有没有这个功能啊,嗯,也还是第一个薪资,如果说薪资为空,我就用领导编号代替,如果领导编号还为空,那我们就为零。
04:11
From。这个是不行的。啊,在Oracle当中这个是OK的。啊,当成这是OK的,也就是说这个地方你不能干什么。写三个啊,他只只支持两个,但是有同学在想,我是不是在生产环境当中有这种需求呢?对吧,有可能有啊。对吧,那有同学提到了,再套一层可以啊,再套一层可以对吧,因为他没有直接提供这种功能,现在还有一个,就后面我们可以学自定义函数啊,自己写这个逻辑,这个逻辑很简单吧。就是如果说代码能写这个逻辑怎么写啊,一用判断吧,先传进来,你不是传三个参数进来吗?A一等不等于呢?啊不等于呢,直接返回A1等于no,我判断一下A2吧,啊,A2不等于呢,返回二等于no,直接返回什么A3对吧?啊,A3就不管你是不是no了啊就这意思,后面呢,我们要学那个自定义函数啊,可以完成这个功能,当然有同学提到了可以用什么。
05:15
嵌套啊,用嵌套也是OK的,但Oracle本身它这个工具呢,是可以传两个参数,也可以传三个参数的啊,传三个参数OK,这是我们所说的空值。
我来说两句