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这门课程所有学生的平均分,对查询到的平均分按等级输出相应的语句
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'这一科学生们还需要加把劲啊!'
输出结果:
Case语句:分支语句
现有如下员工信息表:
需求:根据每个员工的所在职位分发员工职称
select 员工姓名, 所在职位, 员工职称= --设置要显示的列
case 所在职位 --case,判断条件为所在职位字段
when '经理' then '高级职称' --所在职位为经理的员工,职称为高级职称
when '主管' then '中级职称'
when '普通职员' then '初级职称'
else '其他职称'
end
from 新员工信息 --要查询的表
输出结果:
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的学习让我大跌眼界,发现原来不是只有像vb、C这些编程语言才有流程控制语句,数据库也是有的,只是以前不知道。要学的东西真的很多,但每一门语言之间它们都是会有共通的地方,比如流程控制语句!所以我们在学习中要善于去发现那些相通的地方,及时总结相同之处,通过一遍一遍的学习在之前的基础上进行累加得到升华!多练习!
标签:语句,--,sum,Server,num,statement,SQl,print From: https://blog.51cto.com/u_15921176/5970553