PL/SQL中if,case,loop使用

一.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值