00:00
好了,这一节呢,我们继续往下讲,第三节叫单行函数。在前两节当中,我们学习了叫SQL中基本的叫select的查询语句,也是我们使用SQL语言最多的一个命令。第二节我们讲了叫过滤和排序,数据过滤呢,我们使用的叫where,加入一个条件。排序呢?用的叫order b,我们可以选择按照某一列的正序或者是倒序两种方式进行排序。这一节呢,我们带着大家一块儿学习叫单行函数,什么叫单行函数?那么这一节我们都要学哪些内容,大家往下看。本章的学习的一个目标。就是我们通过这一节的学习,要了解并掌握在思后语言当中有哪些类型的函数。那么什么叫函数?这个大家你学习了障碍以后,你再来看这个不同的语言,其实为什么我们讲色后语言讲的很快就花三天的时间啊,或者说再讲了加个PL circle,四天的时间就能够讲完,而我们讲Java基本的这些语法,加上这个基本的集合IO就花了。
01:13
大半个月,那么为什么讲SQ,一方面呢,是因为SQ比较容易,另一方面,当你有了对其中一门语言的一个积累以后,这种编程的思想,那你在学其他的编程语言的时候就显然是要快,比如说我们这里边这个函数。虽然我们在Java当中有的时候也称为函数,但更多的翻译过来我们把它叫做方法。方法是来干什么的,那么就是让我们哎,通过类的对象来调用这个方法,那么方法呢哈,它是封装了一定的功能,通过对象来调方法来实现我们的某一个功能,函数这里呢,是用的跟C语言是一个概念,用的叫函数。作用是一样的,也是封装了某些功能。那么在这一节单行函数这一块,我们就要接触到几种不同类型的单行函数。
02:08
当然除了单行还有多行,我们一会儿再说啊,然后单行函数这块,像这个字符型的啊,数字型的函数,日期型的,转化型的这是几类,其中转化函数是我们今天这一节的学习中的一个重点。那么还有一个重点就是使用叫条件表达式。条件表达式大家也不陌生,我们在Java里边,流程控制里边讲有条件类型的,有循环类型的,其中条件我们用的叫if else。那么在SQL里边如何来实现同样的这样一个功能,我们就要讲讲如何在SQ中使用条件表达式,这是我们这一节的第二个重点,两个重点。好了,我们接着往下看。在SQ这个函数这一块,我们既然叫做函数,大家一定还对,初中的时候我们讲过这个函数,我们把这个常常抽象成这样的一种格式,叫Y等于FX对吧?其中的Y呢叫做因变量,X叫做自变量,F呢称作叫对应法则,这也是一个函数的三个基本的要素。
03:23
我们当时说啊,如果一个函数它只有一个变量的话,这就叫做一元函数。如果有两个变量,比如X1 x2,这就是二元函数。那如果它不止一个的话,不止有一个自变量,我们就把它叫做多元函数。就是这样一个概念对吧,那么我们现现在啊,哎,这是就是这个函数的概念,它的结果一定是唯一的结果只有一个Y,那么现在我们讲这个单行函数。他这时候我们不把它说有一个变量了,叫做单函数,那那应该叫单元函数对吧,什么叫单行函数呢?就是我们对应的查询。
04:07
比如我们在这里边查一个表,那么它会有多条记录,对吧,一条一条的,一行一行的,那么如果你一行。啊,一行这个结果对应的就是一个出来的一个结果的话,就是一行记录对应的一个结果,这个就叫做单行函数。那相对比的,如果你是需要多行的记录来返回一个结果,那就叫多行分析。比如我们后边要给大家讲的叫分组函数,就是一类典型的多行函数。比如说啊,比如说我们想查询一下公司当中的90号部门员工的平均工资。平均工资肯定就一个吧,92部门的,但是你需要将这个部门的所有员工的工资作为一个自变量输进去,出来一个结果,这就是一个多方函数。那什么叫单行函数,那我们今天就要讲有五大类,有五大类,就这五大类,前面呢,还有这个是吧,这也是我们就说什么叫单号函数,只对一行进行变化,每行返回一个结果,可以嵌套,可以转换数据类型,这都是我们下边要学习的。
05:17
那么这一节我们一共学习要五类单行函数,分别叫字符型的数值型、日期转换和通用,最重要的或者说也比较难理解的叫转换型。我们在刚才说本章目标的时候已经提到了,好了。首先看字符的函数。这里呢,又分成两大类,一类叫大小写控制的,一类叫字符控制,我们一个也来看,在关于大小写控制这一块,有三个叫lower up和in keep。分别表示的意思,我们这里也有举例,这样我们写一个一块来看一看,这里呢,我们使用叫SC的用户来登录or CL这样一个数据库,我们开一个同样的window。
06:04
我们在这里来给大家演示一下刚才说的这几个函数。select。刚才一个叫。我这里写一个字符串。比如说就是叫这个吧,艾特硅谷知道吧。还有叫upper。我这样写吧。
07:20
哎,大家看看这个结果。第一个呢,我们输入的全都是大写,它都能转化成小写了,第二个。全部转换成大写最后一个。只有各个单词的首字母是大写的。那也就是说,如果有多个单词的话,将首字母改成大写就是in need keep的这个函数的一个作用。前面呢,大家一看都明白,那么这个怎么来使用呢?比如说我们这里查询一个信息,我先看一下啊,希拉from employees where,我随便查询一个部门,92部门好了,我现在假设呢就查询。
08:09
这个人吧,叫king的这个人,但是呢,我有时候也不太确定说这个人他到底这个名字是小写的,还都是全是大写的,还是说呃,首字母是大写的,那我就可以这样来处理,比如说我就想查询K这个人的信息,Where叫last name等于T,我们这样写是没有问题的。这个信息是能出来的,有两个人都是。那么如果我一不小心把这个K啊改成一个小写了,我们在第一节当中给大家提到过,在这个字符串这块是严格区分大小写的,所以它就出不来了,那么以防万一,我就可以是不是在这前面加一个lower。就是说你这个数据表当中的人的名字到底是全小写,全大写还是首字母大写,我不太清楚,那么但是只要我给你都转换成小写的时候,那一定长成这样。
09:05
那现在这样使用的话,这两条就出来了。就是我们说的这样一个特点,如果你给它改成一个up的话,后边呢,你就把这对应的这几个字符也全部改成大写的,这样也能出来,对吧?这就是我们使用这个大小写控制函数的一个作用。下边还有这样字符控制函数,这呢稍微多一点,有这样好几个,我们分别来看一下,Con翻译过来呢,就是叫连接,那顾名思义将你写的多个字符给它连接起来。Substrate。这我们在是不是在Java当中讲字符串的时候,也讲了这样一个函数,它取一个子串,这个子串呢,一五,这里需要大家注意了啊,你看我们这里举个例子叫hello word,一五,输出结果是hello,那我问大家。
10:01
你说这个一,这个我们一般比较清楚,就是从第一个位置开始,对吧,那么从第一个位置开始,这个五表示的是到五终止,还是说输出五个字符。这是一个疑问吧?因为你在这个例子当中根本看不出来它都是满足的是吧,你可以理解成到第五个终止,也可以列解成五开始的,那么我们写一下,好吧,我先把这两个函数,那加上这个吧,加上这个lengths,我们一块来演示一下。Select叫contact,连接两个字符,Hello word。这是一个,然后呢叫stream。我这里这样写,从二开始四,我们看看它是什么意思,好吧,然后还有一个叫length length显然叫判断字符串的长度,或者叫字符的长度。
11:13
From一个虚表到。看结果,第一个没有问题,最后一个长度十没有问题,我们看中间。Hello,二那意味着是从第二个位置开始,这里大家需要注意,在SQ里边我们讲这个字符啊,或者叫字符串下角标是从一开始的,张二里是从零开始的。那么第二个那就是一开始,那么是到第四个结束,还是说输出四个呢?234它又输出了O,所以后边这个表示的是输出的个数。是四个。这个需要大家你格外注意,我们接着看,后边叫。啊,或者叫in string,判断某个字符在某一个字,某一个单个字符在某一个字符串当中出现的位置,或者叫首次出现的位置。
12:10
哎,那我们来看一下这个。首次出现的位置,第三个也没有问题,那么假设这样,我如果这里边写了一个W。那是不是这个串里边显然没有W啊,那返回的结果是什么呀?零对吧。我们在张二里边是不是说如果哎,你这个L是个首位的话,它输出的是零,如果不存在输出负一,这个呢,整个是不是加个一往后错一位啊,第一位呢是叫一,那么如果不存在的话,它就用。
13:02
这样来理解一下,那么下边还有个叫l pad跟RPA的左对齐右对齐。这个我们也演示一下。这几个函数都不难,但是大家呢,你都给他操作一下,你就知道是什么意思了。比如说我输出一下employees这个表里的一些信息,Employee ID salary。这个salary我给它固定一些位数,假设我现在先叫做L派的salary放这儿。然后呢,哎,使用十个位来存这样一个信息,如果它多了,不,不足不足十位,剩下的这些位数我们用星号来补齐,Employees。这个呢,我们改一下吧。改成your last name。大家看一下这个最后输出的效果。
14:02
我们这里使用的叫L派,L表示left。他表示的意思呢,就是我现在输出员工的salary一共呢是占十位。一共是占十位,这个时候如果你这个十位salary填不满的话,我就用星号来补,往哪补,往左边补。就是左边首先出现的是你输入这个星号,相当于是叫右对齐对吧,叫右对齐或者也不成左对齐右对齐了,因为你这不都是十位吗。就是这样来实现的,如果我们把这个星号给它去了,改成一个空格。这个效果是不是就看着就好多了。假设你把这样一份员工的一些信息给了老板,老板就一目了然。一看。肯定突出来的,这是不是就工资偏高的呀,那么位数越少的就工资越低的呗,这呢叫lpad,你也可以使用叫ipad实现的方式跟它是一样的。
15:05
改成二即可,这个时候那就相当于是不是在右端来补这个空格啊。大家看最后这个就长这样。那对于这个salary来讲,显然我们使用lpad比较合适,那么有些情况下我们就使用叫ipad,根据你具体情况的不同来选择。然后我们看下边叫tri replace,这两个我们一块说一下,Trim呢,将一个字符从另一个字符串当中给它,Trim叫移除。Replace取代,将一个字符串中某一个字符取代为另一个,这里我有两个问题了,你说第一个这个是把所有的这里边儿含H的都去了,还是说减去某些H?这个它是到底只替换首次出现的这个B,还是说将这个里边的所有的B都替换成M。
16:02
是这两个问题吧,那我们来看一下这两个,我们通过程序一演示大家就能明白。先看这个train select的,我将h from这个别忘了啊,Hello word。这个不用多说了,就把H去了,那么我现在改一改,前边整上三个,后边整一个,中间加个H,我们看看这个效果。我们发现是不是仅仅帮将这个。原来这个字符串里边的首尾的H给去掉了,大家你看对比这个输出结果,跟我们本身的这个字符串把首尾的H去了,而中间的H是保留的,这个跟我们Java里边字符串这块的操作是一样的,它仅仅能够去首尾的H。
17:02
那么第二个叫做replace。Replace,将一个字符串中的某一个字符换成另一个abcd。B。里边的B替换成M,大家你看一下,是仅仅替换首位出现的B,还是说将所有的B全替换成了什么?是不是所有的呀,行,这就是我们这样一个函数,大家呢,你把这几个稍微熟悉一下,这就是我们要讲的字符控制函数。那我们接着往下说,这个叫数字函数,数字这个函数呢,稍微简单一些,跟数字相关的叫四舍五入,Round叫串截段,还有一个叫mood求鱼,那我们分别来给大家演示一下,我们先看这个叫round,一个搞懂了,你其他几这个,这个创客呢也就不难了,我这里举一个数,呃,四三五点。
18:20
四五保留两位小数,这是一个,然后再来一个。四三五点。四五。不写了,哎,然后round435.45。前面又写错了,对吧,第四五。我来一个负二。看结果,这个呢,就要保留两位小数。
19:01
那么第二位小数后边是零,所以还是四,五。这呢,默认没有写后边,那就是默认保留到零,那就是只取整数舍吧,所以是435。望的负二,负二,那你就是相当于保留到这的时候叫零,那这是不是就是成了。哎,看舍不舍它,那就是相当于它是这个叫叫负一,那舍不舍它相当于它就是负二,那么三是不是就小于五就成400了。就是我们这里演示的是这样一个效果,你也可以给它改成这写成E,这写成负E,看结果。四舍五入进一位,这还是他负一,这是五进一位,四百四吧。这是我们讲的这个叫round,四舍五入,你就记住这一点就行了,那么把round相应的我给你改成叫创。
20:02
看结果上呢,表示的是截段,也就是意味着不管你后边这一位到底是大于五还是小于五,我都舍去,所以这呢就是435.4,后边即使是五也截断了,这还是435,这个呢430跟那个是不一样的,因为你这个相当于就是得给它截断五大于也不行,所以430。这是创,那mode叫求鱼,这个就比较简单了,Select mode1100。一千一除100是不是能除尽啊,所以它的余数是零,那你改一改除以。300。U200。就是这样。这是我们讲的叫数字函数,这里我们实际上从第一节就开始使用这个叫到这样一个维表了。
21:06
行往后走。日期函数日期函数我们在这里提一下,日期函数实际包含两个值,一个叫日期,一个叫时间。这个呢,我们一会儿讲转换函数的时候,给大家演示一下,比如说我们这个c date c state,实际上里边就是既含着日期又含着当前时间的。只是说我们现在这样看的话。它过长了,所以没有显示出来,你select data from到后边没显示出来不意味着没有,一会儿我们使用转换函数你就能看到了。行吧,好,我们接着往后说。对于c date,日期和时间,那么关于日期这块的操作,我们看一下,在日期上加上或减去一个数字,结果仍是日期。日期上加上我减去一个数字,仍是日期,说明日期函数是不是跟这个数字,这个函数不是叫数字函数了,就日期是一个date型的数字呢,是一个number型,它俩之间是可以做。
22:07
是不是加减运算呀,没错,是这样的,这是我们在第一节实际上已经给大家讲到了,下边说两个日期相减,返回日期之间相差的天数,两个日期之间可以做减法。返回它们之间的差值,这个差值是天数的意思,而不是小时啊什么的之类的啊,它是天数,那么日期是不允许做加法的。你想想也也清楚,你两个日期做个加法有什么意义,就是你的生日,八零年的。你姐姐的生日八五年的那八零加八五没有任何意义,所以日期之间是不可以做加法运算的。我们可以用数字去除以24来向日期中加上或减去相应的天数。因为一个数字你看成小时的话,除以24,哎哎,除以24是吧?哎,数字你看成是小时的话,除以24表示的就是多少个小时,就相当于是天数嘛,加值其中加没问题,我们把刚才说的这个意思给大家演示一下。
23:09
Select,比如C,然后。加上一个一,减去一个三。大家看,这是我们当前的时间,加上一以后,减去三以后没错。然后我们说一下这个日期跟日期之间的一个运算是拉它日期跟日期之间仅能做减法,我现在看一下公司中的这些员工啊。来公司多少天了?那么来工资多少天了?怎么做运算呀?不就是使用C跟CA date之间的一个减法吗?我们先加入一个叫employee ID last nameme。
24:07
然后呢?C减去date。你也可以给它起个名,别名叫work的。对。来公司多少天了?From什么意思?其实对。再上个S。后边这是不是就表示来公司多少天来让两个日期型函数之间做减法,当然你也可以给它再来一个round了。你可以给他带来一个四舍五入,或者呢,你说我不让你四舍五入,直接创造,他就会都给你截断。
25:00
就是这个意思。那现在如果说我想看一下这些员工来公司到底工作了多少个月了,那就是work的是不是叫month来了多少个月了,刚才呢,我们算出来的,我先把它上课去掉,是来公司工作了多少天,那你要想算月的话,我们只因为你各个月是不是天数又不一样啊,我仅能够大概的比如我除以一个30。假设每个月都是30天。我大概算一下,那就应该是这样吧,来公司一共工作了多少个月了?200多个月。那这个数呢,也是一个大概,怎么能更精准呢?就是我们后边要说的这样一个函数,比如说第一个。判断两个日期之间相差的月份数,我们用的叫months between。那么同样的,我们刚才这个需求,是不是用它更合适啊?他先去了,叫man。我们对比一下between between between谁this date跟target date,看看这两个日期之间有多少个月。
26:13
我们看这两个结果,你看是不是有差别。大体上是是没有太大差别,但是后边这个要少。前面这个多,因为你默认每个月有30天,那一年就是三百六十十二,360天,那实际上是360天多,所以这个数要小一点,那你要说哪个更准确呀,那是不是显然后边这个要准确。没错,后边的要准确,我们真正使用的时候,使用这样一个函数来判断两个日期之间有多少个月,那么还有相应的几个跟日期相关的函数,At math next day last day round跟T,我们给大家一块来说一下。I mass向指定日期中加上若干个月。
27:00
Next day指定日期的下一个星期几对应的日期先看这两个at math。At math,我们这样来写I math,大家注意,你看这有没有这个S,有吧,有S,上面这个也有S。所以你写的时候一定要注意这一少S这个函数就不对了。Advance,我向c date当前的这个系统时间加上几个月加上两个月。然后你也可以记逗号减去三个月,这是一个,然后叫next day next day,下一个星期几指明一下,我想看一下今天,大家注意今天星期五,我想看一下下一个星期。
28:02
下个星期几啊。下个星期日吧,就是从当前来看,最近的应该这样说,叫最近的一个星期日是多少。From。看结果,第一个往当前日期上加俩月4月7号吧,减三个月一三年的11月7号next当前日期开始算。即将出现的这个叫星期日,那就是明天后天呗,后天九号。改一改下一个星期四,那就是离最近的这个星期四是哪天。就是下周的是不是礼拜,礼拜43号吧。三号没问题。哎,我们从这其实能看出来了,大家你看C类的,我们刚才说这个叫日期函数日期对吧,日期里边是含着时间的,十分秒都有。
29:06
这是我们讲的这个接着。Last day,本月的最后一天。Round四舍五入,创日期阶段这两个也好说,这个last day,我们举个例子。大塞,本月的最后一天。嗯。这里又演示了,我们写这样一个例子吧,我想看一下来公司。嗯,怎么说,想一想啊。就是来公司员工他的雇佣日期啊,对应的雇佣日期是每个月倒数第二天来的员工有哪些?就是来公司的员工中。员工中这个her date对应的日期我这样说,是每个月倒数第二天。
30:19
来公司的员工有哪些?这怎么写啊,那就是select查询一下。加一个lastname。倒数第二天来公司,我先在这儿给你一个叫her data,看看是多少,然后呢,第二天来公司。From,那意思,Where加条件呗,Where where,那就是her data让他是不是这些就是你是不是来公司的所有员工里边是你来的那个月里边的倒数第二天。
31:02
等于这个你本身的hair date的是吧,这呢我们就用这个叫last day last day里边写什么呀,那里边写的一定是个date型的,就是是倒数第一天,你看你这个日期对应的那个月的倒数,那最后那一天是哪一天,我让这一天。是不是再往前一天?往前一点,往前一天怎么写,减个一吧。来看。诶,大家看这些员工是不是只有这样四个人,你看看他的本身的还是DATA135780了,都是31天,所以倒数第二天就是30号。有这样几个条件满足,或者我们再看一个简单的select,叫last day this date。
32:01
嗯。当前你看当前咱们现在是二月份这个月倒数。这是倒数第一天,那就是28号,也不是闰年,就这个意思,那你再减个一,那就是第27天,相当于是你判断一下,你看para date恰好等于减一天的,就是倒数第二天来公司的期。哎,这是我们这个例子,后边还有一个叫round跟创,我们看一下就好了就行。Run的,比如当前的这个系统时间,系统时间run了一下,按照这个月份来给他run的,然后按照年来给run的,啊,按照这个月来给创造。哎,就是这样来举例,那我们写一个吧。Select叫round,我就写上C,按照月份,那就是month。实际上这里我们可以也简写成叫MMRCMM它俩是一个意思哈,前后是一样的,我还可以再加上一个叫创,还是C,我想按一下这个小时来给创一下。
33:25
看结果。按照月份来给让。2月1号舍了吧,没有,这个月没有过半,要过半的话就进,没过半就折,那你按照这个这俩是一样的。创客不管你是什么都给舍,所以现在这个这个一点多,所以还是这个一点多,还是一点就是给舍掉了。这是关于日期的,这样这几个呢,大家你熟悉一下就好,重点呢我们讲这个叫转换函数,说我们这一节里边的第一个重点转换函数涉及到就数据类型的转化,里边我们会牵扯到字符数字跟日期。
34:06
它们三者之间有两种转换,一种叫隐示的,一种叫显示的,我们先来看这个隐示的转换,隐示呢也比较简单好理解,什么叫隐式的转换,相当于是Oracle会自动的来完成这样一些类型的转化。从字符型的到number型I到date型转换转换这个表呢,这样一看还不是太形象。我们给它抽取出来,实际上就是这个意思。中间。你看这个表,你给他总结一下啊,总结一下的话,是不是中间我可以就写成是一个叫。我这样写吧,我图就是字符串呗。字符串通过第一个我们看到它可以转化成number类型的,那就意味着它可以往number类型转,同时呢,Number类型是不是也可以转化回来呀,那就是意味着它俩之间是有一个相互转化的。
35:02
情况。加上了这个标识。同样的道理,我们看到字符型也可以转化成date型,Date呢也可以转化回来,那就是一个意思。它呢也可以转化成对称性。这就是我们讲的叫隐式转化,相当于它们三个之间有一个自动的一个转化。大家其实都在使用,怎么理解啊,我们刚才是不是在一个date型函数上,或者date型的一个日期上加了一个天数啊,它俩之间还出来结果了,那就意味着它俩之间可以来转化。实际上它俩转化是因为date型可以跟涡差型转化,而涡差呢又可以给它转化。就是这样一个效果,你也可以让这个沃尔塔跟它做运算,比如说select的12加上二不大。
36:08
14。很奇怪是吧,我们讲Java的时候,如果是一个字符串跟一个数字做运算的时候,中间就不是表示加了,而表示的连接输出的是122,在这不一样了,我们在这个so库当中,连接不用的加号用的是不是双数线啊,用的是它,所以你这个加号它还是表示的是加。那就是12跟二互运算,这呢就相当于它们俩之间的一个。是不是一个转化呀,自动转化相当于这个12可以自动转化成一个number类型的,它俩可以做一个。就是这样一个意思。啊。那么同样的,你说这个select date,这显然是一个date型的,我加上一个二,二呢,是一个字符型的吧。
37:05
Shes data。加了两天,这不就意味着可以实现date型和自无形之间的一个转换?这叫隐式转化,但有的时候呢,这个隐式转化也解决不了一些问题,比如说啊,我们后边你看看我写上一个数,这个数,比如说大家在这个你看,尤其你看这个英文的这个数字的时候,它常常这样写三个一位,三个一位是吧。第二,二、三。假如这是一个人的一年的一个一年的一个薪资吧,还挺多的是吧,假如这一个人的一个年的一个薪资,你让这个数去跟,嗯,比如说加上一个三啊,加上一个四啊,它肯定没法做运算,为什么呀,因为这里边儿是不是有一些特殊字符啊,Select它。
38:02
加上一个二。你看是不是乱套了,这是不是默认成了一个逗号,成了一列了吧,那这样显然是不行的,那么对于这种情况的话,我怎么把你这种符号给它忽略掉,看成就是一个数字来给大家做运算,这就是我们要说的这个显示的转化。就是饮食转化是默认的啊,那显示转化是什么情况,还是这样几个类型。如果咱们由中间,中间作为转化的还是字符串。或者叫字符,它可以通过date to date转化成date型,Date型也可以通过叫to差转化成字符型,同样的道理,通过two number转换成number number呢,通过to差再转换回来,这里呢,这个转换函数是哪几个呢?就是叫to。Number不差。这是三个转换函数。
39:01
我们先看黄的这个圈,好吧,先看黄的这个圈。大家还记不记得我们在讲前面两节的时候,用到一个第二节说我想输出一下这个雇佣日期是某一天的,这个员工有哪些,比如说啊,我这里随便来写一下,我先看一下这个。Her。From employee。这是公司里边一些员工的。这个这个信息我们想输出一下来公司,呃,是这个哈,Data是九四年的6月7号来公司的员工有哪些输入这个信息的时候,当时我们说了还挺费劲,我们说得使用叫转换函数,说后边会讲,就是我们今天要讲的。今天要讲的,我现在呢,就想输出94年6月7号来公司的,当时呢,我们是不是说这样写where叫para等于这个呢,后边的格式还挺严格的,零七杠零六。
40:14
这还写了一个月,然后一个杠1994。这,这还不对。大家也看到是不是我们这样操作的时候非常的恶心吧。稍有不慎,你就写错了。还不行。这出来了,哎,我们试了好几次才出来,就是说你这个格式你稍微写错一点,你就查不出来。
41:00
我们真正去操作的时候,也从来不这样去写。那么怎么来写?我们都是使用叫转换函数,我们现在就来给大家演示her date是一个date型的。我想看一看啊,如果我把这个date型的函数转化成一个叉型的,叉型的之后跟某一个样子长得一样的就行。是吧?那么怎么写相当于把her date的date型转化成差型,使用的叫to差,把它转化成一个差形,转化成什么样子呢?我们这里需要讲到几个这个这个标标识符了啊,YYYY表示的是年,中间跟月之间用小横杠连接起来,MM表示的是月,DD表示的是。天。别写成D了,D成了叫星期了,长这个样子的时候,如果你跟这个叫1994年的6月7号长得是一样的。
42:04
那我们就把你输入出来,此时呢,左边它是一个字符型的,右边也是中间可以用等号。连接,OK。那么我们就说不出来了,这是我们讲的叫转换函数啊,将一个还的转换成它以后,我们写的时候,如果你想查询某个日期的,满足某个日期的一个一些条件的话,我们都这样来使用。这呢,我们是把对型转化成差型,你也可以把差型的给它转化成date型,也就是说也可以这样写where。差型转化成date型,那就是to date呗,怎么着啊,你刚才写的这个右端的它是不是就是一个叉形吗?转化成对的形,按照什么格式来转啊,这是不是就刚才你指明的这样一个格式类型?所以还放在这儿,然后这个时候如果等于转化出来以后。
43:03
对角形的长,这样也行。看结果还是这四个人吗?这就是我们讲的跟日期字符之间转化的两个转换函数,一个叫to date,一个叫to差。大家你熟悉一下。熟悉一下。不难,对吧?那么我们再把中间这个再说一下,这个叫to差,将date型转换成差型,如果你想在里边加上一些特殊符号也行,或者加特殊符号之前,比如我想让这个YYY中间不用短横线,用这个斜线,那你就把这改成个斜线。这也是斜线。就这样呗。没问题,那么这个输出效果就是斜线性默认,你看它这也写的是这样的类型是吧,如果你要说。我再把它注一下回来。
44:02
如果你要说想在这个短横短横线之间,比如长这样呢,还是不是特别好,我想呢,最后输出的是长这样的,比如说这个1994哎年6月7日想写成这样,或者我短横线不要了,不要了也行。像这样的话,但你前边前边是不是相应的你没有汉字啊,那我得在这儿是不是改成,改成这个汉字叫做年吧,但这个时候你改成年啊。单程写到这还不行,我用一个双引号需要,也就是说当你需要在这个按照指定的格式将对型转化成差形的时候,需要穿插一些字符的时候,用双引号月月。我给你包起来这样几个特殊的字符。
45:01
再来看。也行也行,也能出来,只是说这个没有给输出出来,为啥没有输入出来,因为你这还是写的car data,它默认的格式就是长得是这个样子,对吧,默认的格式长这个样子,那你怎么着啊。那就这样。CTRLC。V给它改一下格式呗,这是不是就行了呀,都是94年6月7日出来,呃,这个来的。嗯。这是我们讲的关于差型和data型之间的转化,那我们下边说这个差型和number类型的转化,然后我们再休息一下。这个差型跟number类型的转化呢,我们先来看number转化成差吧,Number转化成差,Number转换成差的话,用的是to差,哎。我这样写select叫to差,还是包括两个部分,第一部分呢,就是你这个数字呗,1234567.89,比如说它转化成字符串的话,这样来写,我就用999来表示的是数字三个一位点九九。
46:26
转换成这样格式的from。大家看结果。你看从这开始三个一位,所以567567,逗号234再移。后边是个八九。没错吧?就是说你想按照什么样格式的来转化,你就相应的中间都用九来表示,然后三个一位中间用逗号隔开,用九也行,你看我要是现在把这个九都改成零的话。你看是什么效果,这也可以改成零零,这也可以改,我就改了一部分看结果。
47:06
跟刚才都用九的有一点区别,区别在哪啊?区别在这儿的时候,实际上没有什么变化,你用的999跟用的000都一样,关键呢就是最前面。原来当你这个1234这三位了,一这块因为就只有一位,所以呢,它就是一了,前面都没有,所以就空就就用空,空就空了,而这个呢,一前边你没有了,但是我这是写的零,所以你就还是用零来补。就这意思啊,就是说如果你要想想这个就是三个一位,然后没有的话,就用零补的话,你就用000,如果你不需要补的话,就用999。就这意思。这是我们实现了这样转化,有的时候呢,我们还想说怎么着啊,输值一下员工的工资,哎,按照某个格式,然后公司呢,到底是人民币啊,还是说是美元啊,这里又多了两个字符。
48:05
你要是用这个我们shift的加四,这是不是刀符啊。那么这个时候你输出的结果前面就有一个倒伏,表示的这是钱首先对吧,其次呢,美元。那么除了这个符号之外,还有一个叫L。L啥意思啊,叫当地的。本地的货币符号local local本地的L开头的中国人,我们是用的是不是人民币啊,所以是这个这这个符号。变变。哎,这个符号。大家应该挺熟悉的啊,就像是个羊的一个,大概是一个羊的这样一个形状呀,我们看一看我这箭头出来。啊。
49:00
呃,稍微闲扯一下,这是不是就像是个羊一样,古代就把羊当成是一种哎。这个这个可以交换的一种工具一样,物物交换的时候用阳对吧,可以用阳作为一个中间的一个交换物,所以它呢,表示的是这个钱的符号,中国人现在用了。好多,大家现在这个去去淘宝是不是都各种亲过来亲过去的。嗯,开尔白条说,就是说这个,他虽然说叫的是亲,但实际上眼睛里边看到的全是钱。因为这个这个氢里边含着这样一个人民币的符号是吧?嗯。这呢,我们就举一个例子给大家说了,如何将一个number类型的转换成一个差型的,相应的我们有这样几个字符。往后看。哎,90DOLLAR符,哎,然后本地的货币符号点号点号小数点,然后逗号。这是我们实现了数字到。字符串的一个转化,反过来如何我们将字符串转化成你这个数字呢?也可以转,怎么转?
50:07
我这里。把它给租掉。那你select呢?这就是什么number了,选谁?假设,比如说就是我们刚才。就是它粘不过来这样。嗯,我把它粘一下CTRLC回来。这现在是一个字符型的,所以你必须得这样写。然后呢,按照这个格式来转。这个是来转。哎,然后from。到然后我们看一下,那这样呢,我们就将一个字符型的,就是说本质上来讲,它还是一个数字型的一个字符,然后给它转换成一个number类型的。
51:13
咱们就回来了,转化成number类型以后,你想在它后边给加上一个一啊,加上一个二啊,就可以做运算了。对吧,而而你刚开始你说我就想让这个数。哎,写上刚才CTRLV写上这个数,哎,不是不是这个数的这个。或者你去掉这个这个货币符号,想让它跟这个一做一个运算,这肯定是不现实的,就是实现了我们刚才讲这个转换函数之初的时候说的一个想法,那么通过这样的一个转换函数,我就将你这个字符型的转换成数字型,然后呢就可以再做运算。这个呢,如果你不是写的本地的这个人民币的符号改成个刀乐福了,那你把这也改成个到乐福。
52:04
哎,那么再给它做运算是一样的,对吧,这个我们先删掉,哎,它同样的是一个number类型的,这都必须是要对应的,大家要注意啊,你这写的刀符,你这呢,你改成一个L看一下是不是就不好使啊,他们都必须要对应。嗯,我们讲这个都是都是需要对应的啊,这个呢,就是你从number类型转换成差,或者从差转换成number类型,这个呢是一般都不变的,变的就是前边这是number型出差出来一个差型的,那么这是个差型的,按照这个类型转to number出来就是个number型。好,这是我们讲的,讲到这儿哈,是我们这一节里边的这个重点。那下边呢,我们再讲后边这个叫通用函数里边这个内容,以及叫条件表达式,大家先休息一会儿。
我来说两句