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


ifelse,如果逻辑语句有多行,用begin end 包裹

 

 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,如果逻辑语句有多行,用begin end 包裹

 

 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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM