00:00
好,那么接下来我们继续通过几个案例呢,来去介绍关于排序查询的特点啊,那么我们在这呢,写上就是案例二吧,然后这个当成案例一哈,呃,那么假如说呢,我们在这个排序的基础上加上筛选,我们看一下怎么去写,比如说我们做一道题哈,呃,说查询我们的部门编号大于等于90的啊,那么我们的这个员工信息的员工信息,那么要求呢?啊,我们这个按我们的这个入职入职入职怎么写入职时间啊,然后进行一个入职时间的先后啊进行一个排序哈,进行排序,好,那么我们来去试一下这个怎么去写好要去查的呢,是员工信息,那么依然是slack的星号from,是不是我们的表明呀,Employees啊啊,那么我们再继续,我我这进行一个换行,因为东西比较。
01:00
长了,那么现在呢,我们需要去筛选了,所以说我们是不是要加Y2的条件,那条件是什么呢?那就是BY勺的前面,它说是部门编号大于等于90,那应该是department ID大于等于90,好,再继续order by入职日期,入职日期的话应该是have date,那么看是升序还是降息,如果是是说入职时间先的啊,也就是比较早的,那么我们排到上面的话,那应该是从小到大,从小到大那应该就是升序了,那这个。就完事了,我们再看一下效果哈。哎,那么这个呢,我们发现部分编号呢,都是大于等于90的,那么her date的话是不是从小到大,哎,是了哈,那这个就出来了,这是关于这个案例,那么相当于是说,哎,它用上了我们一个叫做呃,筛选哈,那么添加我们的一个筛选条件,好,那么再继再继续我们再做一个案例,案例三。
02:07
啊,那么假如说呢,我要想去按表达式排序,看行不行,按表达式排序啊,那么我们做一个简单的案例啊,比如说呢,我们现在呢,想干啥嘞,查询员工的信息,按年薪排序啊,那也就是按年薪的高低啊,显示我们员工的信息啊和年薪,哎,我想做出这样的一个效果,看一下能不能行啊。那么首先呢,让我们显示的呢,就是员工的信息,还有年薪,那么这个信息他没说,那就是全部,我写一个星号,年薪的话呢,也要显示出来,那我们知道在我们的这个员工表里边并没有年薪这个字段,那么我们需要算出来,这就是一个表达式,年薪怎么算呀?哎,是不是salary乘以12再去乘一。
03:00
啊,对了,应该是乘以E加上是不是commission。Pack,那么而且呢,这个commission派我们知道它的值有可能为nor,那么这样的话呢,一加now等于对了,又等于no了,那所以说在这我是不是需要通过一根函数对它处理,那也就是1NOW,哎,那如果说呢,Commission派的值为,那我们让它显示为零,那么这样就是一加零啊,没奖金嘛啊那么这样就可以了哈,这就一个表达式,我在这呢,可以起一个别名,比如说叫做年薪,然后在from我们的员工表,没有where对吧?那直接order by,好,那意思是说我澳大后面的这个排序的字段,排序的列表我放一个字段可以,我能不能放一个非常大的这样的一个表达式啊,能不能。啊,这个实际上也是可以的哈,那当然你是降序和升序啊,这个就根据自己的需要来了,假如说我作为一个降序,我们看一下能不能实现。
04:06
好,我们把这个结果呢给展开好,这个是年薪,你看年薪的话是不是就是从高到低。啊,没问题吧,啊,这个就没问题了哈,这是按表达式排序,来,我们再来是一个案例四,那么刚才呢,有同学也也想到了,我们这个表达式一般比较长啊,一般比较长,我们往往会跟他去起别名,那么我假如说order半后面呢,我不写这个表达式,我直接写别名可不可以啊,可不可以啊?好,我们试一下,那也就是说这道题呢,我们改一下,我们看一下能不能按别名排序哈,啊,那我就把这个直接可以粘过来吧,啊放这那这个order by呢,我这就写谁嘞。对了,我就直接写年薪,我们看一下哈,刚才的效果呢,长得是这个样子的啊,28000,呃,288000在最上面对吧?好,那么现在我们再去试一下,看能不能行呢。
05:03
没变吧,是不是还是这样的一个效果呀,啊,那么也是对的对吧,那这就说明了呢,我们order半后面它也支持别名啊,它也支持别名,好我们再继续案例五。那么我们呢,假如说想去查询一个比较特殊的吧,啊,我呢,这个我的这个员工表里边呢,有姓名这个字段lastname lastname的话呢,我假如说呀啊想根据他的这个姓名的一个字节的这个长度进行一个排序,看能不能行,也就是我们想呢,按我们的姓名的长度啊,来去显示我们员工的姓名和工资啊,那么这个地方其实就用上了姓名的长度排序了,对不对,那姓名的长度呢,它是怎么实现的呢?啊,其实会用到了一个函数,所以在这呢,我们想去看按函数排序,那长度的话,它用到了一个函数叫做lengths lengths哎,括号里边呢,写上我们要去呃获取谁的长度里面放一个字符线的数数据,那么假如说我要是放一个状元的话,那实际上它的长度就是几啊。
06:15
对了,那就是四啊,那很显然就是说,哎,我们这个我们的这个字符的它的字节长度最终返回出来,那么现在我们返回的是谁呀啊,就是姓名,那就是last nameme对吧?那我在这呢,比方说叫做字节长度好逗号,那么我还想去显示他的姓名,那就是lastname,还有他的工资salary对吧?好,那么再去from我们的employees表。啊,然后没有这个where,那就直接order by,那我们的意思是说能不能把这个给排下序嘞,那我们呢,就是order by后面是不是加上它啊,假如说我要降序一下,那就是decc,好,我们看一下会不会报错啊,有没有语法错误,执行一下没报错对吧?而且呢,我们的确发现啊,它的字节长度是不是从大到小对它进行了一个排序啊,你看啊,这个是没有问题的哈。
07:11
哎,这个叫做按函数排序,也就是order,后面它也支持这个哈行最后一个案例。那么假如说呢,我想去呢,按什么排序呢?查询一下我们的这个员工信息,那么要求呢,员工信息,那么要求呢,先按我们的工资排序,再按员工编号排序,员工编号排序。好,哎,这个是什么意思嘞,你会发现排序的这个列表里边不仅仅是一个了,你像刚才咱们做的这个案例order by后面是不是都是放了一个东西呀?啊,或大或小,但是都是一个东西,现在呢,我们这个要求里边既有工资也有编号,那么也就是说我们的order代句它支不支持按多个字段开序嘞?
08:05
啊,多个字段排序呢,实际上这个也是支持的,那我们试一下,那么查询员工信息,那就是select的星号,From我们的lo表哈,那么order back先按谁排,那么谁就放在前边,那先按工资,那就是salary。哎,那你是升学还是降血呢?这个由你决定啊,假如说是升学啊,那么员工编号假如说是降学哈。降序啊,好,那么我这呢,就是升序as sc,当然asc可以省略逗号,继续加我们的第二个排序的字段,那就是员工编号啦,那employee ID降序怎么写啊,是不是DEC呀?好,这是它的一个完整语法,现在我们再去执行看一下能出来吧,啊,那这个是怎么排的呢?我们看一眼啊。首先呢,我们整体来讲,我们的工资是不是一个从低到高这样的一个排序啊,我们往下拉一下。
09:04
没问题吧,看一下工资啊,就是salary这一个字段,别看别的地方整体是从低到高,但是工资的话,它绝对是有一样的,对吧,假如说我们看一下这个,呃,是不是有两个六千五的呀,能看到吧,200006005,呃对应的是这两个人。是这两个人吧,好,那意思是说,假如说工资有一样的话,那么这两个员工他是怎么排的呢。我们要是不跟他规定的话,那肯定就是就是这个随机了,对吧,就说不清了,嗯,那假如说我跟他规定了,你像刚才我是怎么规定的呢?我是不是就是又按员工编号进行一个降序啊,所以绝对是六千五的这两个员工啊,他们他们最后显示的这个效果,你会发现员工编号比较大的是不是在上面,员工编号比较小的在下面。你看再去看一个,比方说两个6000的哈。好,你看是不是一个降序没问题吧,也就整体的话呢,我们的salary是一个从低到高,然后如果一样的话,在我们的员工编号从高到低啊,那么这个就是按多个字段排序,这个有点类似于咱们之前学过的这个Excel哈,或者说大家以前应该接触过它,呃,这个里边的话呢,假如说我们有数据的话。
10:18
我们要实现这个排序啊,这个里边是不是有排序啊,因为我这儿没数哈,啊,比方说我们跟他整一点数诶。那比方说这这些数字我们进行一个排序,你看这个地方是不是有主要关键字啊,就是你按哪个列排,因为我们发现我们这个里边是不是有这列H列二列JK是不是五个列呀,好,也就是你先按谁排,哎,然后还可以添加次要关键子,也就是再按谁排啊,它这个意思,那我们的这个排序其实也是一样的道理,当然呢,也是你不仅仅限于两个字段啊,那么我们还可以三个字段,甚至更多,我们也不仅仅限于order后面就是字段。
11:03
那么像刚才我们介绍到的别名也好啊,还有表达式或函数也好,其实也都可以这样组合着,都在这儿放啊,放多个也没有关系的。啊,好吧,这个就是关于排序查询里边涉及到的一些案例,我们就说到这里了。
我来说两句