SQLServer--逻辑控制语句

IF-ELSE语句

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

SQLServer--逻辑控制语句_第1张图片

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分。
SQLServer--逻辑控制语句_第2张图片

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

SQLServer--逻辑控制语句_第3张图片


case语句

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

SQLServer--逻辑控制语句_第4张图片

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

你可能感兴趣的:(SQLServer高级开发技能,SQL)