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

本文介绍了T-SQL中的逻辑控制语句,包括ifelse的使用,当逻辑语句涉及多行时,需用begin end进行包裹。同样讨论了while循环结构,以及case when语句在条件判断中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

转载于:https://www.cnblogs.com/Spinoza/p/10047066.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值