00:01
当函数这一章完了以后,我们来看一下这章里边的练习题,我们先看这个TXT里边的。有没有一些新的题目我们做一下。第一个说打印出这种格式的当前系统的日期和时间,打印出这种格式的,我们来看一下CTRLC过来。这个格式的当前系统的日期和时间,就是说我们当前这个系统,我们在讲课的时候也说了,既含有日期又含有时间,那我们现在就来打印一下select。那肯定是c state了,对吧,但是呢,要显示出这种格式的,那就相当于是特殊的一种格式类型。那么这个我们应该怎么写?
01:00
这个是不是显示出来的这种格式是一个字符型的呀,那么字符型的其date是一个date型的,那我就使用的叫叉长什么样?YYYY这是表示的叫年。我们先写一个这样的格式吧,MM杠,DD,呃,小时是SH冒号mi minute冒号S表示的是秒,然后呢,From到。再注意,人家这写的是年月日,所以你得把这个改成双引号,这叫年。月日。然后我们运行一下看结果。
02:00
这就是指定的这种格式类型,跟他刚才说的是一样的,好吧,来接着后面格式化数字,把它变成这种类型的,那这是不是一个带逗号的,这显然是叉类型的,所以使用负叉将一个number类型转化成一个叉类型。字符串转成数字的时候,若字符串中没有特殊的字符,我们可以直接的让它进行一个加减的运算,那么相当于进行了一个隐式的转化,它就是一个number类型的。如果它有特殊的字符了,像这个样子的有逗号,那么就无法再进行隐式的转化,需要我们使用叫two number,将它转化成诶,按这个样子转化成一个number类型,再加上100做预算。把日期的作为查询条件进行查询的时候,我们说日期查询的时候,你要么呢,就是格式非常严格,错一点不行,或者呢,我们这样来写,而真正使用的时候都是用的。
03:02
转换函数。转换函数用哪个都行,你既可以把一个它要求的这个日期的char类型转成date型,也可以将her date作为date型转化成char类型的。都行。我们讲转换函数就是三个,这是我们讲的今天的一个重点。查询每个月倒数第二天来的,那就last day减一呗,对吧?然后这里边放的是一个day的性子哈,然后计算公司员工的年薪,这里用的叫通用函数,这样写是错的,因为凡是他为now参与运算的结果都是now,我们得使用NVL。将它为nu的时候变成零。第25题就是我们刚才那会儿讲课的时候讲的一道例题。也是我们讲单函数这一节里边的另一个重点,两个重点一个是条件表达式,一个是转化函数,大家需要注意好了,那我们这一节,哎,这一章或者说啊,内容就到这儿,然后我们看一下这里的。
04:08
Word版的这个章节的练习,我们分别把这几道题目带着大家一起来做一下,先看前四道。第一个显示系统的时间,刚才实际上我们是不是都写了呀,再来一遍啊,转成叉类型的data。我就不写什么年月日这三个字了。就他。嗯,这是有括号。
05:02
这是不是我们应该用字符串这个字符嘛,对吧,标起来。好啦。哎,我们看第二题。查询员工号、姓名、工资以及工资提高20%以后的结果叫new salary select employee ID lastname salary以及工资提高20%以后的结果,那就是salary。乘以,那就1.2倍乘起个名字,当你这个新名字中间有空格的时候,那你一定是要用双引号的new salary from employees。
06:22
就是这个结果。接着。将员工的姓名按首字母排列,并写出姓名的程度select。来一个lastname。姓名的长度,那就是LS呗,LS,这是一个函数name。
07:00
按首字母排序,LS。加上一个order。Last name,你写上as也行,或者你不写,默认的也是AA。长度。确实是首字母的顺序对吧,看第四个。查询各员工的姓名。并显示出各员工在公司工作的月份数。工作了多少个月?Select lastname?嗯,然后再多加上一个也行,就是her。工作的月份数,那就是判断一下当前的日期,叫系统日期跟他之间相差的时间数。
08:10
工作的月份month us,大家要注意between。我们需要把C写前面her date。嗯,这是不是我就算出来的工作的月份数啊,起了个别名work month,但这个时候这个月份数可能会有好多位末分的小数点,如果你要是想就保留一位,你可以给它是不是在外边再包一层,用round也行,让它逗号保留一位小数。这样写七个别名。
09:01
这是他的雇佣日间,哎,雇佣日期,这是他来公司到现在一共是工作了多少天,这正好除尽了是吧?然后如果除尽的话,有一个小数。不是除不尽就是相减,如果有小数有小数的话啊。来,我们接着往下看。五。后边那那先先先来一个五吧,你说C。看我怎么说的,查询员工的姓名以及在公司工作的月份数跟这个差不多,并按月份数降序排列。那跟这个题目变化不大,只需要在后边加上一个order by,我们按照某一个新的这个列的别名来进行一个排序,按照它的降序排CTRLC,通过它E。
10:07
这样是不是就行了?最少165.6个月。这公司要在中国的话,就像是一个国企的,也只有国企的这些人一工作就是从从从来到单位一直到到死是吧。工作的时间挺长的。做一个查询,产生下面的结果。嗯,起了个别名叫dream salary。诶谁谁谁挣多少钱每个月,但是他想挣多少钱。就是输出这样一个语句,一共都输出来,大家这里需要注意一点,这里是不是多了一个叫Dollar符啊。哎,那这个到怎么处理,Lastname earns多少钱来我们操作一下。加个道路图啊。加Dollar符,我们使用到什么呢?本身呢,它是一个sal number类型的,加到符相当于转换成差类型的。
11:08
Select last name。二。二是多少钱,不看吧,Salary加上一个招乐福。Salary他这也没有,是不是加这个逗号,没加逗号那你就直接来就行,本身这个钱大概都是就就几万嘛。那你就写几个九,我这里写了六个九,把它转化成一个差类型的。加空格。Nice。
12:04
But want。这个呢?接着把它拿过来翻倍呗。三乘以这个。没了。起了个别名叫dream salary。Employees。那么这一行是一条数据,所以说一行只能起一个别名。哎,那这个结果就是这样的,你可以再稍微调整一下。
13:05
OK,那这个我们就写完了,把这个往这一粘。接着我们看后边这个,这呢是关于这个条件表达式的。使用抵扣的函数,按照下面的条件给它产生一个结果,Job在不同部门的job ID,这些人给他起一个。GR啊,在这个部门呢,格叫A,这个叫B,这个叫CDE。那操作这个的话,我们把它放在边上。来,在这写。嗯。
14:00
使用结构函数按照下面的条件输出。Job。等于它的时候,输出的是A。哎,Lastname还是在employees这个表里,那你就这样写select lastname。Job ID,然后看看job ID的grade grade相当于是一个别名,那我们在最后给它起个别名,使用decode抵扣的知道不ID?当你是这个部门的时候。我让你的grade a grade本身又是一个字符,所以这样写,然后如果是另一个部门。这样我都粘过来。逗号B。
15:01
的话。我先把这个框写出来。这个部门第三个。第四个。第五个,当时这五个部门的时候。都给他交易,哎,那剩下的没有,没有的话,Else else,我们就不处理了,就是本身你是什么就是什么。嗯。那就没有那个量了,嗯,就这几个五个部门,这个括号呢,相当于是个end,最后呢,给起了一个别名,这个别名叫grade。
16:10
From employees。前面这呢,你也可以给它看成一个别名也行,如果你把前面看成个别名,你就再给他,嗯,写一下叫last name,因为它首字母是大写,其他的都没有ID,就这样呗。这个呢,相应的给它后移吧。OK。运行一下结果。那么相应的就有这个grade,如果没有写的,那grade就是一个now。是这意思吧?
17:01
嗯,好嘞。行,看这。这个放在这儿的话,格式比较比较恶心,我们稍微调一下。但是你知道这个意思啊,自己自己你写的时候,在在这里边写的时候,你尽量把格式写的规范一点,我们放到word里边,这格式可能得需要我们稍微调一下。就这样吧,是吧。大家下来呢,你自己一定要把这些。例子自己亲自去写一写并难,但是呢,不敲的话就容易忘。下边我们说让用case把这个重写一遍,Case重写一遍,重写一遍来吧。
18:12
不是使用它了,给它叫kiss kiss它然后问吧,哎,放大一点。逗号不要改成问问,这个时候把它改成Z。逗号去掉。问。对。
19:10
哎,最后没有了,没有就没有呗,在这这个小括号右括号相当于是个N对吧。七个别名行,这个我们写完了C。行了。会啊,没有问题,哎,我们把它粘过来。行,那么这一节我们内容就讲完了,这个这一节内容稍微多一些,大家你把这两个重点,一个是转化函数,一个是条件表达式。熟悉一下,自己亲自去挑一下。
我来说两句