zoukankan      html  css  js  c++  java
  • Oracle之PL/SQL流程控制

    1、条件分支

      1.1、IF语法

      begin
          if 条件1 then 执行1
          elsif 条件2 then 执行2
          else 执行3
          end if;
      end;
    declare
        --emp表中记录数
        v_count number;
    begin
        select count(1) into v_count from emp;
        if v_count>20 then
            dbms_output.put_line('表中记录数超过20条,为:'||v_count);
         elsif v_count>=10 then
            dbms_output.put_line('表中记录数在10到20之间,为:'||v_count)
        else
            dbms_output.put_line('表中记录数小于10条,为:'||v_count)
        end ifend;
    View Code

      注意:关键字elsif不是elseif

      1.2 Case 语法

      case 条件表达式
          WHEN 条件表达式结果1 THEN
                语句1
          WHEN 条件表达式结果2 THEN
                语句2
              ......
         WHEN 条件表达式结果n THEN
                语句n
        [else 条件表达式结果]
      end case;

    declare
        v_name varchar2(20);
    begin
        v_name:='zhangsan';
        case v_name
          when 'zhangsan' then dbms_output.put_line('张三');  
          when 'lisi' then dbms_output.put_line('李四');      
          else dbms_output.put_line('无法找到改名称'); 
    end;
    View Code

      case
         WHEN 条件表达式1 THEN
             语句1
          WHEN 条件表达式2 THEN
             语句2
          ......
          WHEN 条件表达式n THEN
            语句n
          [else 语句]
      end case;

    declare
        v_name varchar2(20);
    begin
        v_name:='zhangsan';
        case 
          when v_name='zhangsan' then dbms_output.put_line('张三');  
          when v_name='lisi' then dbms_output.put_line('李四');      
          else dbms_output.put_line('无法找到改名称'); 
    end;
    View Code

    2、循环

      2.1 Loop

        begin   

          loop  

               exit when 执行2  退出循环条件  

        end loop;

    declare
        num number:=1;
    begin
        loop
          exit when num>10
          dbms_output.put_line(num);
          num := num+1;  
        end loop;
    end;
    View Code

      2.2 While

        while <布尔表达式> loop

          循环体语句;

        end loop;

    declare
        flag boolean:=TRUE;
    begin
        while flag loop
          dbms_output.put_line ('Hello World!');
          flag:=FALSE;
        end loop;
    end;
    View Code

      2.3 For

        [<<标签>>] for 循环计数器 in [ REVERSE ] 下限 .. 上限 loop

              循环体语句;

        end loop [<<标签>>];

    begin
        for i in 1..3 loop
            dbms_output.put_line(i);
        end loop;        
    end;
        
    View Code
  • 相关阅读:
    LeetCode 32.使数组唯一的最小增量
    LeetCode 31. 最小的k个数 快速排序+堆排序+二叉搜索树
    LeetCode 30. 最长回文串
    LeetCode 29. 矩形重叠 反向思维
    LeetCode 28. 拼写单词 HashMap赋值给另一个HashMap
    LeetCode 27. 字符串压缩
    Java SSM Spring+Spring MVC+Mybatis整合
    LeetCode 26.岛屿的最大面积 DFS深度遍历问题
    LeetCode 25.最长上升子序列 动态规划
    LeetCode 24.找出数组中出现次数大于二分之一数组长度的数
  • 原文地址:https://www.cnblogs.com/ZJ199012/p/11624037.html
Copyright © 2011-2022 走看看