首页 > 技术文章 > SQLServer —— 流程控制语句

xulinjun 2019-12-11 22:42 原文

一、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以下为不及格。方法如下:

推荐阅读