SQLServer —— 流程控制语句
一、IF - ELSE
语法:
IF(条件) BEGIN 语句1 语句2 ... END ELSE BEGIN 语句1 语句2 ... END
说明:
ELSE是可选部分,如果有多条语句,才需要BEGIN-END语句块。
实际运用:
有如下俩张表,学生表和学生成绩表
现在有这么个需求:查询软件1班的C#考试平均分,如果平均分大于80,则表示优秀,如果大于60,则表示良好,其余部分,则输出还有待加油,如下:
二、WHILE
语法:
WHILE(条件) BEGIN 语句1 语句2 ... BREAK END
说明:
BREAK表示跳出循环,如果有多条语句,才需要BEGIN-END语句块。
实际运用:
有如下一张学员成绩表:
现在有这么个需求,老师觉得这次考试太难了,好多学生C#成绩都不及格,需要手动提高下学生的分数,提高他们的积极性,不及格的都设置成及格,当然,这里最简单的办法是直接按学生C#成绩直接update成60最方便,但是这里为了讲解下WHILE嘛。如下:
三、CASE-END
语法:
CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 ... ELSE 其他结果 END
说明:
ELSE表示CASE中所有WHEN条件均不为TRUE时返回的结果,如果省略ELSE条件都为FALSE时,CASE语句返回NULL。
实际运用:
有如下俩张表,学员表和学员成绩表:
现在有这么个需求,学员成绩进行拼比,平均分90以上为A,80~89为B,70~79为C,60~69未D,60以下为不及格。方法如下: