zoukankan      html  css  js  c++  java
  • 流控制语句

    1.1   If……ELSE条件判断语句

    在程序中如果要对给定的条件进行判定,当条件为真或假时执行不同的语句,可以用If……else语句实现

    语法格式如下:

     IF Logical_expression

         expression1

       [ELSE

         expression2]

    用变量示例:

     --显示笔试平均成绩、再根据平均成绩显示相应信息
     declare @avg float
     select @avg=AVG(writeExam) from Exam
     print '-------------成绩信息如下----------------'
     print '全校平均成绩:'+convert(varchar(20),@avg)
     
     if @avg>=70
     begin
     print '全校成绩优秀'
     --显示前三名的学员信息
     select top 3 stuName 姓名,si.StuId 学号,WriteExam 笔试,LabExam 机试 from StuInfo si,Exam ex where si.StuId=ex.StuId order by WriteExam desc--笔试降序排序
     end
     
     else
     begin
     print'全校成绩比较差'
     select top 3 stuName 姓名,si.StuId 学号,WriteExam 笔试,LabExam 机试 from StuInfo si,Exam ex where si.StuId=ex.StuId order by WriteExam asc--笔试降序排序
     end

    1.2  BEGIN……END语句块

    作用:封装T-SQL语句,使其为完整一块

    以Begin为起始位置,end为语句的结尾

    允许使用嵌套的 begin……end语句

    语法格式如下:

    BEGIN

    //T-SQL语句

    END

    begin 
       select * from exam where stuno=@StuNo
    end

    1.3  WHILE循环语句

    功能:在满足条件的情况下,重复执行同样的语句

    语法格式如下:

    WHILE 表达式
        BEGIN
        //T-SQL语句
        [BREAK]
        [CONTLNUE]
        END

    示例如下:

     --对全班学员进行提分,保证每个同学的笔试成绩全班通过(用循环)
    
     while (1=1)--永远循环
     begin
     declare @count int--保存未通过的人数
     select @count=COUNT(*) from Exam where WriteExam<60--统计未通过的人数
      if(@count=0)
      begin
      break --终止循环
      end
    
      --进行加分
      Update Exam set WriteExam=100 where WriteExam>=98
      update Exam set WriteExam=WriteExam+2 where WriteExam<98 
      end 
      print'------------------加分后学员成绩如下-----------------------'
      select * from Exam

    小提示:在T-SQL中只有while循环,没有for循环和do……while 循环

    1.4  CASE

    case结构提供比if……else结构更多的选择和判断的机会

    case 结构有两种形式:即简单表达式和选择表达式

      (1)、简单表达式语法格式如下:

    CASE input_expression
          WHEN  when_expression  THEN result_expriession
          [WHEN…n… THEN……]
          [ELSE else_result_expression]
    END

    简单表达式例子如下:

    select stuno '学号',stuname '姓名',stuAge '年龄',stuSex'性别',
       case stuSex
          when '' then '先生'
          when '' then '女士'
          else ''
       end '称呼'
    from StuInfo

    (2)、选择表达式

    选择表达式语法格式如下:

    CASE
         WHEN boolean_expression THEN result_expression
         [WHEN…n… THEN ……]
         [ELSE else_result_expression]
    END

    例子如下:

      --显示学员笔试成绩的等级制
      --90分以上,优秀 80-89 良好 70-79中等 60-69 一般 60以下 不及格
      select examNo 考号,StuId 学号,WriteExam 笔试成绩,LabExam 机试成绩,等级=
      case
      when WriteExam>=90 then '优秀'
      when WriteExam>=80  then '良好'
      when WriteExam>=70 then '中等'
      when WriteExam>=60 then '一般'
      else'不及格'
      end 
      from Exam

    1.5 RETURN

    可以在过程、批、语句块中任何位置使用,作用是无条件的从过程、批或语句块中退出,在return之后的其他语句不会执行

    语法格式如下:

    RETURN intger_expression

    1.6 WAITFOR

    waitfor语句可以将它之后的语句在一个指定的间隔之后执行,或在未来的某一个时间执行

    语法格式如下:

    WAITFOR {DELAY 'time' | TIME 'time'}

    1.7 PRINT 和 RAISERROR

    (1)PRINT 语句

    作用:在屏幕上显示用户信息

    格式: PRINT 'string' | @local_variable | @@global_variable

    例子:PRINT 'This message was printed on '+RTRIM(CONVERT(varchar(30),GETDATE()))

    (2)RAISERROR 语句

    作用:将错误信息显示在屏幕上,同时也可以记录在NT日志中

    格式:RAISERROR({msg_id | msg_str } { , severity,state} [argument [ , ……n]])[WITH option [, …n]]

  • 相关阅读:
    通知:逆天异常库 V1.0版本支持下载了~~
    【源码】Word转PDF V1.0.1 小软件,供新手参考
    GitHub实战系列汇总篇
    GitHub实战系列~4.把github里面的库克隆到指定目录+日常使用 2015-12-11
    GitHub实战系列~3.提交github的时候过滤某些文件 2015-12-10
    Windows无法安装到这个磁盘。请确保在计算机的BIOS菜单中启用了磁盘控制器
    GitHub实战系列~2.把本地项目提交到github中 2015-12-10
    Git异常:fatal: could not create work tree dir 'XXX': No such file or directory
    GitHub实战系列~1.环境部署+创建第一个文件 2015-12-9
    肉肉好走,愿你在异界依旧快乐活泼
  • 原文地址:https://www.cnblogs.com/1219zy/p/8284222.html
Copyright © 2011-2022 走看看