sql server中的逻辑控制语句

 

在SQL SERVER中,提供了一些简单的逻辑控制语句,在平时的运用中这些结构起着很大的作用,下面对这些结构作一些简单的说明。
一 IF-ELSE条件语句
 语法:IF()
       语句或语句块
     ELSE
       语句或语句块
若有多条语句,则使用语句块,语句块使用BEGIN...END表示,其作用相当于Java语句的“{}”符号。
 IF()
     BEGIN
      语句1
     语句1
     .....
     END
ELSE
例如从成绩表TScore中查询,本班的平均分数在70分以上,则显示“成绩优秀”显示前3名的考试信息;否则显示“成绩较差”并显示后3名的考试信息。
declare @myavg float
select @myavg = avg(score) from TScore
print '本班平均分'+convert(varchar(5),@myavg)
if(@myavg > 70)
  begin
    print '本班成绩优秀,前三名成绩为:'
    select top 3 * from TScore order by score desc
  end
else
  begin
    print '本班成绩较差,后三名成绩为:'
    select top 3 * from TScore order by score
  end

二 WHILE 循环语句 :在循环语句中使用continue和break关键字来控制语句的执行。
  语法:
   WHILE(条件)
    语句或语句块
    [BREAK]
使用break关键字从最内层的while循环中退出。
例如本次考试成绩较差,要提分,确保每人的成绩都通过,提分规则,先给每人加2分,看是否通过,如没有全通过,继续加2分,直到每人都通过为止。
declare @n int
while(1=1)
  begin
   select @n = count(*) from TScore where score < 60
   if(@n > 0)
     update TScore set score = score + 2
   else
     break
  end

三 CASE 多分支语句:相当于多重if语句
  语法:
   CASE
      WHEN 条件1 THEN 结果1
      WHEN 条件2 THEN 结果2
      [ELSE 其他结果]
   END
例如:成绩表TScore中,用等级来评成绩分数。A:90分以上,B:80~89,C:60~79,D:60分以下,并显示他们的学号stuNO。
代码:select stuNO,成绩 = CASE
   when score >= 90 then 'A'
   when score between 80 and 89 then 'B'
   when score between 60 and 79 then 'C'
   else 'D'
 end from TScore

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值