00:00
好,那么接下来呢,我们来说一下,就是还有一种分支结构,那就是case结构,这个之前也说过吧,咱们是不是说它实际上呢,可以分为两种情况,第一种情况呢,就是呃类似于我们Java中的是不是Switch语句啊,呃,Switch语句大家复习一下,对了,它一般用于实现我们的是不是等值判断呀,等值判断啊,你比如说呃,我们呢,有一个电话号码,如果说是110,那怎么怎么样啊,如果说是114怎么怎么样,其实就是拿着电话号码和110做等值判断啊,和114做等值判断对吧?哎,那这个就是呃,Switch结构哈,那像case呢,它就可以实现这种啊,这是情况一,那么还有第二种情况呢,就是它类似于哎我们Java中其实就是多重衣服了,也就是普通的这种多重。多重。
01:00
垂支哈啊,那么它一般用于实线啊,我们的用一般用于实线区间判断啊,区间判断好,那么把这个弄一下哈,那区间判断呢,就是我们拿这个字段呀,看一下它是不是在某个范围,比方说成绩字段它是不是大于等于90,并且小于等于100,哎,也就是有一个区间对吧?哎,如果满足这个呃,区间怎么怎么样,然后如果说满足另外的一个区间怎么怎么样哈,哎,那这个的话就是多重衣的这个特点啊,跟我们那么其实Switch和多重衣的这个区别,那咱们Java中之前都呃说过很多次了哈,那么咱们MYSO中是完全一样的,我就不多说了啊,那么case的话还是很强悍的,既可以实验它,也可以实验它。好那么具体的语法怎么写来着呢?咱们在这试一下语法哈,那像这个case结构,它的这个实现,呃,类似于Switch的话,它的语法也跟Switch差不多。
02:00
说K后面呢,加上你要判断的东西,这个东西的话呢,就是它最终能够返回一个值啊,返回一个值,你比方说变量呀,绊达式呀,字段呀,哎都有可能,哎后面呢,加上问问呢,后面再去加上我们的这个具体的你要判断的值啊,要判断的值啊,然后S后面呢,再去加你的整个的case结构,是不是返回的一个值啊哎,S返回的值一啊,哎,它是这样的啊,那么再继续问,后面加上我们要判断的值,然后Z后面加返回的值二,依此类推,哎,这个是可以多个的,最后的话是else,那么就是要返回的值N对吧?哎,那么如果说结尾了怎么办呢?我们再用一个end啊,这是我们之前做过的啊,之前做过的,那么它经常搭配在select的语句里边,其实也可以搭配。
03:00
萨其他语句,比如说update等等来去使用啊好,这是关于它,那么如果说情况二怎么去写呢?情况二的话呢,就是我们把这个跟变一下。呃,因为你这个地方它是个区间判断了,所以它不是拿着某个字段去和值,这样去匹配了,这一块就没了吧,那么这个地方是不是要判断的就改成是不是条件了呀,哎,这个是一个条件,条件一,哎,那这个的话是一个要判断的条件二啊,那后面是不变的啊哎,这个是第二种情况来实现我们这种区间判断的多重衣服哈,这是之前,那么其实的话,咱们当时也说了,它不光可以说呃,结合着select呀等等语句作为表达式来使用,它其实也可以作为什么呢?单单本的单崩的语句来使用,也就是说它本身它就是一套语句,我们就直接可以执行的啊这个的话,当然你得必须放在我们讲完的这个存储过程或函数中,当时没说是因为咱们是不是还没讲这些呀,啊,那OK,那么他要是那样去用我们怎么办呢?你这个地方就必须不是加值了哈,你你。
04:12
因为是单独的语句了哈,你能够执行的一个语句了,所以它这个地方它放的不是值,而是一个语句啊,语句一,而这个地方也一样,我们放的是一个语句,好,那这个地方的话,其实也是放的什么语句啊,啊,也就是把这个这个值都换成什么语句啊,你既然是语句,那么我这个地方其实都应该加什么,是不是都应该加分号了呀,啊都应该加分号,而且你结尾的时候,这个地方也得加一个case and case分号也得加它了。那么下面也是一样的道理,如果说你是单崩的作为语句的话,那么你这个地方也都得这样去变啊,或语句一或语句二啊,诶这个英文状态的,然后后面也一样,这个的话就是或语句N啊in the case啊in the case分号。
05:06
好吧,那么根据刚才介绍的话,我们发现这个case结构的话很强悍,但是也意味着它的这个语法呢,要记的东西就比较多,那么咱们来写一下,呃,那么它是这样的哈,我们的case结构我写这儿吧,这个是特点,那么它既可以作为作为我们的表达式,那么相当于嵌套在我们的什么上来使用呢?嵌套在其他语句中使用,那么也可以作为独立的语句去执行啊,去执行或者去使用吧啊去使用,那么如果说作为表达式,这个咱们以前试过了哈,那么它只能啊,不是只能,它是可以放在我们的任何地方啊,所以说我们前面早就试过,因为那会儿没有讲begin的呢,对吧,你没有讲的也没有关系,因为它可以放在begin end中,或者说我们begin end的外面都可以,但是如果说作为独立的语句去使用,那么它就。
06:07
就只能放在我们的笔根end中,所以接下来咱们其实就是要演示一下它放在be begin end中作为独立的语句去使用,那怎么去写啊,就是这个意思。好,这是关于我们case结构的语法,还有特点呢,就跟大家说明白了,那怎么去执行呢?呃,那其实的话呢,也是类似于咱们,呃,前面说过的那个Switch一样哈,那我们这个不管你是哪一种情况,它实际上执行都差不多,你比方说以他为例。哎,那就是判断这个条件如果说成立,那是不是执行它呀,执行完它之后注意了就直接跳出了啊,它不会再往下继续判断。啊,注意了哈,那么如果说不满足这个条件,那么它将继续判断第二个条件,哎,如果满足直行,它OK跳出啊,以此类推,如果这几个条件都不满足,是不是执行呃,Else语句啊,然后跳出。
07:06
那当然,如果说没有else,因为else说过是不是可以省略,如果没有else,那就都不执行呗,都不执行啊。哎,他这样的一个意思啊,他如果都不执行返回的是闹好吧,那我把这个特点也跟大家去写一下哈,这是特点,这是一,那么第二个特点的话呢,就是刚才说到的一个执行,那么执行时如如果说我们要问中的语句吧,问中的值或者说语句,哎,成立啊,或者问中的值或者语句,呃。这不叫语句,这叫条件,对吧?条件啊,问中的值满足,或者说条件成立,则执行对应的C后面的语句,后面的语句啊,并且啊,结束我们的case啊,它并不是说执行完了,就这个继续往下判断好,如果说都不满足,如果都不满足,则执行我们else中的语句啊,或者是指啊它这样的第三,那么如果说我们else,嗯,就是else省略哈,Else可以省略,可以省略,那么如果说我们省略了并且呃,所有的when语句,所有的when。
08:41
条件吧,条件都不满足,也有这种情况对吧,那么则返回no啊返回闹,哎好了,这是关于我们case结构哈,那当然呢,我这儿呢,也做了这样的一个PPT,然后来跟大家去演示一下啊,你看也就是咱们case结构呢啊,说白了就是它可以分为两种情况,第一种情况呢,就是作为表达式,那咱们之前介绍的就是这种,它可以放在任何地方啊。
09:11
那么它的这个语法来讲的话是如果作为Switch,也就类似于Switch的呢,那这个地方就写值啊,然后这个是case表达式写的是值,And呢,后面没case,那如果说是作为多重衣服的实现啊,那么我们这儿也是直接把这个改成值不是语句啊,后面也没分号哈啊,那这个是N看一下好,如果说呢是作为独立的语句,它只能放在B跟N中。那么这个时候呢,它的这个语法呢,是这个样子的,就是C后面你看是不是都变成语句了呀,而且加分号啊,End的后面呢,我们加上一个kiss啊好了,这是关于这个case结构的一个语法,就跟大家说到这儿了,那么接下来呢,咱们就可以做一个简单的演示了哈,我重点给大家演示的是咱们之前没有演示过的,也就是它作为独立的语句去使用,放在比跟end中,哎,结合着咱们存储过程或者说函数啊,那咱们去试一下,哎,那么我们在这儿做一个案例哈。
10:14
哎,这么去写吧,这个是案例,嗯,那么假如说呢,我们打算呢,去创建一个存储过程,创建存储过程啊,做一个什么事情呢?呃,比如说根据我们传入的啊,传入的做一个简单的成绩啊,然后来去显示等级啊,什么等级呢?你比如说比如说我们传入的是A,呃,错了,传入的是这个传入的成绩,成绩在什么区间呢?90~100区间,那么我们将显示A,好,那么如果说是80~90之间,那么我们就显示B,那么如果说是60~80之间,那么我们就去显示C,好,那否则的话呢,我们就去显示D啊做一个这样的一个案例比较简单,对吧,那咱们怎么写嘞,Create我们是。
11:15
C后面呢,我们再加一个存储过程,比方说test,我们的case后面呢,传入一个成绩,那就是in模式哈,成绩的话,比方说高,那么它的类型呢,就是int对吧啊in。好了,那么也没有返回值,那就是begin,哎,结尾,哎,那这怎么去写呢?好,那么我现在呢,就想让它作为一个单独的语句去使用,不嵌套在其他的这个语句了哈,哎,那么在这儿呢,我们就去写case的语法,那你得想它属于哪种情况哈哎,它是属于作为独立的语句嘛,它是情况一还是情况二呢?这是一个区间还是个等值判断?哎,对了,它是一个区间判断,所以说是不是应该套这个情况二啊,哎,那好,那么我们在这就应该是case,后面再去加什么问,哎,那么再去加我们的成绩杠,如果说是怎么样呢?哎,这后面应该是写一个如果小于等于100分,哎,那么S后面呢,我们加A,你看哈,后面我们去加语句s selectck的A结尾,那么如果说我们这个杠小于等于90SIN,我们在select b结尾,那么如果说哎,是90吧。
12:39
小于等于100啊,这应该是我这样写比较合适,应该写大于等于多少对不对,大于等于90,大于等于90,然后再来一个并且吧,那就and and,我们的score是不是小于等于100可以吧,那么我这呢就改成它就是大于等于80,那就不用写小于90了,因为呃,大于的都在这了,对不对,哎,那这样写就更更科学一点哈,那这个就是高大于等于60呢,我们在slack的谁呢?是不是C好分号,然后呢,呃,否则那就是else,我们在select d哎,这样就结尾了,哎,如果说我整个case结尾要加end case分号能看明白吧?哎,这样去写哈,完事,然后我们再去调一下,看能不能行,靠一下我们的test case啊,然后这个地方呢,我们传入。
13:39
出一个值,传入一个值,比方说我这儿呢,传入一个多少呢?95分啊,哎,这就是做一个简单的这个使用哈,那么看一下它能不能去打印出来,因为这个地方这就是一个打印行了,那么现在呢,我们来去执行,哎在这儿呢,我们去运行一下,好大家看一下95没问题吧,那么假如说呢,我再来一个调用一下多少分呢?比方说55分好D没问题吧,哎,这个就可以了哈。
14:09
行,这是关于case结构,那咱们就先说到这儿。
我来说两句