PL/SQL中if,case,loop使用

来源:互联网 发布:人工智能的出现证明 编辑:程序博客网 时间:2024/04/29 19:20

一.if语句

--简单的if...else语句declare  var_id number(4); begin SELECT e.empno into var_id FROM EMP e where e.mgr = 7902; if var_id > 10 then        /*            dbms_output.put()就是输出的意思,相当于java中System.out.print()            ||就是java中的+,拼接的意思            */   dbms_output.put_line('id大于10 '|| var_id); else    dbms_output.put_line('id小于10'|| var_id);  end if;end;--if...elsif..语句declare  var_id number(4); begin SELECT e.empno into var_id FROM EMP e where e.mgr = 7902; if var_id > 7369 then   dbms_output.put_line('大于'|| var_id); elsif var_id < 7369 then    dbms_output.put_line('小于'|| var_id);  else     dbms_output.put_line('等于'|| var_id);  end if;end;--嵌套的if和java的嵌套循环类似,只是pl/sql中需要按照if的格式编写

二.case语句

--简单的case语句declare   var_id number(4);begin  SELECT e.empno into var_id FROM EMP e where e.mgr = 7902;  case var_id    when 10 then      dbms_output.put_line('id为10');    when 11 then      dbms_output.put_line('id为11');    when 23 then      dbms_output.put_line('id为23');    else      dbms_output.put_line('没有对应的id');    end case;end;--探索式case语句,当满足条件时,就直接跳出整个case语句declare   var_id number(4);begin  SELECT e.empno into var_id FROM EMP e where e.mgr = 7902;  case     when var_id < 10 then      dbms_output.put_line('id小于10');    when var_id <5000  then      dbms_output.put_line('id小于5000');    when var_id < 8000 then      dbms_output.put_line('id小于8000');    else      dbms_output.put_line('没有对应的id');    end case;end;

三.loop语句

--用嵌套循环来打印九九乘法表--①用loop循环declare  v_i number :=1; v_j number :=1;begin      loop            loop               dbms_output.put(v_j||'*'||v_i||'='||v_i*v_j||'  ');               v_j := v_j+1;            --退出内层循环              exit when v_j>v_i;            end loop;            v_i := v_i +1;            v_j :=1;            --换行            dbms_output.new_line;        exit when v_i>9;      end loop;--代码的最后必须要以end 结尾end;--②for...lop循环declare begin   for i in 1..9 loop     for j in 1..i  loop         dbms_output.put(j||'*'||i||'='||i*j||'  ');     end loop;     dbms_output.new_line;   end loop;end;--③while...lop循环declare   v_i number :=1;  v_j number :=1;  v_sum number:=0;begin   /*    while 循环条件 loop          循环体;    end loop;   */   while v_i<=9 loop     v_j:=1;     while v_j<=v_i loop       v_sum:=v_i*v_j;         dbms_output.put(v_i||'*'||v_j||'='||v_i*v_j||' ');         v_j := v_j+1;     end loop;     dbms_output.new_line;     v_i:=v_i+1;    end loop;end;--打印结果为1*1=1  1*2=2  2*2=4  1*3=3  2*3=6  3*3=9  1*4=4  2*4=8  3*4=12  4*4=16  1*5=5  2*5=10  3*5=15  4*5=20  5*5=25  1*6=6  2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  1*7=7  2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  1*8=8  2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  1*9=9  2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81  
0 0
原创粉丝点击