SQl Server——流程控制语句

 

IF...ELSE语句:条件处理语句

IF Boolean_expression

{sql_statement|statement_block}

ELSE

{sql_statement|statement_block}

需求:查询成绩表sc编号为801,学科为01这门课程所有学生的平均分,以此来对学生表现进行评价

declare @num int                          --声明变量
select @num=avg(score)                    --给变量赋值为平均分
from sc
where 课程编号='801' and CId='01'          --指定查询
if @num>90                                --if...else语句判断平均分是否大于90
begin
    print '这门课学生学得非常不错!'        --打印结果
end
else
    print '这门课学生还需要继续努力!'

输出结果:                             

                                     

 


 

IF...ELSE语句嵌套

需求:查询成绩表sc编号为801,学科为01这门课程所有学生的平均分,对查询到的平均分按等级输出相应的语句

SQl Server——流程控制语句_第1张图片

declare @num int
select @num=avg(score)
from sc
where 课程编号='801' and CId='01'

if @num>=60
begin
    if @num<70
        print'成绩刚刚及格,还要继续努力!'
    else if @num<80
        print'成绩中等'
    else if @num<90
        print'成绩良好'
    else print'成绩优秀,希望把经验与大家分享分享!'
end
else
    print'这一科学生们还需要加把劲啊!'

输出结果:

                                              SQl Server——流程控制语句_第2张图片


 

Case语句:分支语句

现有如下员工信息表:

SQl Server——流程控制语句_第3张图片

需求:根据每个员工的所在职位分发员工职称

select 员工姓名, 所在职位, 员工职称=     --设置要显示的列
case 所在职位                           --case,判断条件为所在职位字段
when '经理' then '高级职称'             --所在职位为经理的员工,职称为高级职称
when '主管' then '中级职称'
when '普通职员' then '初级职称'
else '其他职称'
end 
from 新员工信息                         --要查询的表

输出结果:                             

                                                               SQl Server——流程控制语句_第4张图片


 

While语句:循环语句。执行一段重复的语句

WHILE_E Boolean_expression                循环条件
{sql_statement | statement_block}
[BREAK]                                                   break跳出整个循环
{sql_statement | statement_block}
[CONTINUE]                                            continue跳出本次循环执行下次循环
{sql_statement | statement_block}

需求:执行1~100的累加

declare @i int, @sum int       --声明变量
set @i=1                       --给变量赋初值
set @sum=0
while @i<=100
begin
    set @sum=@sum+@i            --对和进行累加
    set @i=@i+1
end
    print @sum                 --使用print函数打印和

执行结果:

 

思维导图

SQl Server——流程控制语句_第5张图片

总结

通过这次对SQL的学习让我大跌眼界,发现原来不是只有像vb、C这些编程语言才有流程控制语句,数据库也是有的,只是以前不知道。要学的东西真的很多,但每一门语言之间它们都是会有共通的地方,比如流程控制语句!所以我们在学习中要善于去发现那些相通的地方,及时总结相同之处,通过一遍一遍的学习在之前的基础上进行累加得到升华!多练习!

 

 

 

 

 

 

你可能感兴趣的:(#,Sql,Server,sql,数据库)