T-SQL 逻辑控制语句 ifelse while casewhen

ifelse

 1 use StudentManageDB
 2 go
 3 --查询成绩
 4 declare @cAvg int
 5 select @cAvg=avg(CSharp) from ScoreList 
 6 inner join Students on ScoreList.StudentId=Students.StudentId where ClassId=1
 7 print 'C#平均成绩:'+convert(varchar(20),@cAvg)
 8 --判断成绩
 9 if(@cAvg>=80)  
10     print '软件一班成绩优秀!'  
11 else
12     print '软件一班成绩一般!'

while

 1 use StudentManageDB
 2 go
 3 print '加分之前的C#成绩:'
 4 select StudentId,CSharp from ScoreList 
 5 declare @CSharp int,@StuId int
 6 while(1=1)
 7     begin
 8         select top 1 @CSharp=CSharp,@StuId=StudentId 
 9                  from ScoreList where CSharp<60
10        if (@CSharp<60) 
11           update ScoreList set CSharp=CSharp+1 
12                 where StudentId=@StuId
13        if((select count(*) from ScoreList where CSharp<60)=0)
14          break
15    end
16 print '加分之后的C#成绩:'
17 select StudentId,CSharp from ScoreList 

case when

 1 use StudentManageDB
 2 go
 3 select 学号=StudentId,
 4 总评=CASE
 5                 when (CSharp+SQLServerDB)/2>=90 then  'A'  
 6                 when (CSharp+SQLServerDB)/2 between 80 and 89 then  'B'  
 7                 when (CSharp+SQLServerDB)/2 between 70 and 79 then  'C'  
 8                 when (CSharp+SQLServerDB)/2 between 60 and 69 then  'D' 
 9                 else '不及格' 
10           end
11 from ScoreList

猜你喜欢

转载自www.cnblogs.com/Spinoza/p/10047066.html