SQLServer--逻辑控制语句

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36482772/article/details/77692796

IF-ELSE语句

ELSE是可选部分,如果有多条语句,才需要BEGIN-NED语句块。

这里写图片描述

use StuManageDB
go
declare @cAvg int
Select @cAvg=avg(CSharp)from ScoreList
inner join Students on ScoreList.StudentId=Students.StudentId where ClassId=1
Print 'C#平均成绩: ' + Convert(varchar(20),@cAvg)
--判断成绩
if(@cAvg>=80)
    print '软件一班成绩优秀!'
else
    print '软件一班成绩一般!'

WHILE循环语句

将不满足65分的学员加分到65分。
这里写图片描述

print '加分之前的C#成绩'

Select StudentId,CSharp from ScoreList
declare @CSharp int,@StuId int
while(1=1)
    begin
        Select top 1 @CSharp=CSharp,@StuId=StudentId
        from ScoreList where CSharp<65
    if(@CSharp<65)
        Update ScoreList set CSharp=CSharp+1
            where StudentId=@StuId
    if((Select Count(*) from ScoreList where CSharp<65)=0)
        break
    end 
print '加分之后的C#成绩:'
select StudentId,CSharp from ScoreList

这里写图片描述


case语句

对学员成绩进行评比,90以上为A,80-89为B,70-79为C,60-69为D,60以下为不及格

这里写图片描述

use StuManageDB
go
Select 学号=StudentId,总分=case 
    when(CSharp+SQLServerDB)/2>=90 then 'A'
    when(CSharp+SQLServerDB)/2 between 80 and 89 then 'B'
    when(CSharp+SQLServerDB)/2 between 70 and 79 then 'C'
    when(CSharp+SQLServerDB)/2 between 60 and 69 then 'D'
    else
        '不及格'
    end
from ScoreList
展开阅读全文

没有更多推荐了,返回首页