PL/SQL条件控制(IF)操作实例

本部分主要讲解PL/SQL条件控制语句的一下几个:

语句描述
IF - THEN 语句IF语句关联的条件通过THEN和END IF关键字封闭的语句序列。如果条件为真,则语句被执行,如果条件为假或NULL,则IF语句什么都不做
IF-THEN-ELSE 语句IF语句添加关键字ELSE后面的语句的替代序列。如果条件为假或NULL,语句则只有替换序列得到执行。它确保任一陈述的序列的被执行
IF-THEN-ELSIF 语句它可以在几个方案之间进行选择
  
内嵌IF-THEN-ELSE可以使用一个IF-THEN或IF-THEN-ELSIF语句中的另一个IF-THEN或IF-THEN-ELSIF声明

PL/SQL的源码操作实例:

-- Created on 2018/3/23 by E.WANG 
declare 
  --学生总分
  score integer;
begin
  /*
  score<60:为E 表示没及格
  70>score>=60:为D 表示及格
  80>score>=70:为C 表示中等
  90>score>=80:为B,表示良好
  100>score>=90:为A,表示优秀
  score=100:为A+,表示优异
  */
  
  /*
  IF语句关联的条件通过THEN和END IF关键字封闭的语句序列。
  如果条件为真,则语句被执行,如果条件为假或NULL,则IF语句什么都不做
  */
  
  score:=-10;
  if score<0 then 
     dbms_output.put_line('Score is error!Please alter Score!');
  end if;
  
  /*
  IF语句添加关键字ELSE后面的语句的替代序列。
  如果条件为假或NULL,语句则只有替换序列得到执行。
  它确保任一陈述的序列的被执行
  */
  score:=101;
  if score between 0 and 100 then
     dbms_output.put_line('Score is right range!');
  else
     dbms_output.put_line('Please input again !');
  end if;
  
  /*
  它可以在几个方案之间进行选择
  */
  score:=78;
  if score<60 and score>=0 then
     dbms_output.put_line('The student mark is: E');
  elsif score>=60 and score<70 then
     dbms_output.put_line('The student mark is: D'); 
  elsif score>=70 and score<80 then
     dbms_output.put_line('The student mark is: C'); 
  elsif score>=80 and score<90 then
     dbms_output.put_line('The student mark is: C'); 
  elsif score>=90 and score<100 then
     dbms_output.put_line('The student mark is: A'); 
  elsif score=100 then
     dbms_output.put_line('The student mark is: A+'); 
  else
     dbms_output.put_line('Please input again !');
  end if;
  
  /*
  可以使用一个IF-THEN
  或IF-THEN-ELSIF语句中的
  另一个IF-THEN或IF-THEN-ELSIF声明
  */
  
  score:=100;
  if score between 80 and 100 then
     if score=90 then
        dbms_output.put_line('The student mark is: A'); 
     else
        if score<90 and score>=80 then
           dbms_output.put_line('The student mark is: C');
        elsif score>=90 and score<100 then
           dbms_output.put_line('The student mark is: A'); 
        elsif score=100 then
          dbms_output.put_line('The student mark is: A+');   
        end if;
      end if;
  else
     dbms_output.put_line('Please input again !');
  end if;
  
end;

给出部分窗口截屏:


运行结果截图:


©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师:上身试试 返回首页