您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

oracle中的控制语句

bubuko 2022/1/25 20:05:25 其他 字数 5933 阅读 812 来源 http://www.bubuko.com/infolist-5-1.html

一、条件语句1、流程控制-if else(1)ifif 判断条件 then ...end if;(2)if-elseif 判断条件 then ...else ...end if;(3)if-elsifif 判断条件1 then ...elsif 判断条件2 then ...elsif 判断条件n t ...

一、条件语句
1、流程控制-if else
(1)if
if 判断条件 then
      ...
end if;
(2)if-else
if 判断条件 then
      ...
else
      ...
end if;
(3)if-elsif
if 判断条件1 then
      ...
elsif 判断条件2 then
      ...
elsif 判断条件n then
      ...
end if;
(4)if-elsif-else
if 判断条件1 then
        ...
elsif 判断条件2 then
        ...
elsif 判断条件n then
        ...
else
        ...
end if;

 

例:


 

set serverout on;
declare

      employee_number number;
begin
     select count(*) into employee_count from employees where employee_age>30;
     if employee_count>10 then
         dbms_output.put_line(‘公司有年龄大于30的员工‘);
    else
        dbms_output.put_line(‘公司没有年龄大于30的员工‘);
    end if;
end

 

统计年龄大于30的员工信息,存在多个条件判断(elsif)时如下:

declare

      employee_number number;
begin
      select count(*) into employee_count from employees where employee_age>30;
      if employee_count=1 then
          dbms_output.put_line(‘公司有1名年龄大于30的员工‘);
     elsif employee_count>1 then
          dbms_output.put_line(‘公司有多年龄大于30的员工‘);
     else
         dbms_output.put_line(‘公司没有年龄大于30的员工‘);
     end if;
end


 

2、流程控制-case when
case when 与if else 有相同的效果。当需要匹配的情况较多时,可以使流程控制更加清晰
(1)case-when
case expression
    when value1 then
          ...
    when value2 then
         ...
    when valuen then
         ...
end case;
(2)case-when-else
case expression
    when value1 then
          ...
    when value2 then
         ...
    when valuen then
        ...
    else
       ...
end case;

 

例:


 

declare employee_number number;
begin
       select count(*) into employee_count from employees where employee_age>30;
      case employee_count
            when 1 then
                    dbms_output.put_line(‘公司有1名年龄大于30的员工‘);
            when 0 then
                    dbms_output.put_line(‘公司没有年龄大于30的员工‘);
           else
                  dbms_output.put_line(‘公司有多名年龄大于30的员工‘);
      end case
end


 

二、循环语句
1、无条件循环-loop
loop
    ...
end loop;

 

例:


 

declare v_id number :=0;
       v_name varchar2(20);
begin
  loop
      if v_id>=5 then
          exit;--退出循环
      end if;
      v_id:=v_id+1;

      select empolyee_name into v_name from employees where employee_id=v_id;

      dbms_output.put_line(v_id||‘号员工是‘||v_name);
  end loop;
end;

除了利用if判断退出循环外,还可以exit when的形式跳出循环


 

2、while循环
while 条件判断 loop
      循环操作
end loop;

while指定循环条件,其后仍然跟loop,此处的loop循环与无条件循环中的loop完全相同,只是增加了while条件而已。

 

例:


 

declare v_id number :=0;
       v_name varchar2(20);
begin
while v_id>=5
loop

     v_id:=v_id+1;

    select empolyee_name into v_name from employees where employee_id=v_id;

     dbms_output.put_line(v_id||‘号员工是‘||v_name);
end loop;
end;


 

3、for循环
for .. in .. loop
     ...
end loop;

 

例:


 

declare v_id number :=0;
        v_name varchar2(20);
begin
for v_id in 1..5
loop

     v_id:=v_id+1;

     select empolyee_name into v_name from employees where employee_id=v_id;

     dbms_output.put_line(v_id||‘号员工是‘||v_name);
end loop;
end;


 

4、循环控制关键字

(1)continue:终止本次循环,进入下一次循环。

(2)exit:终止本层循环,进入下一层循环。oracle中没有break关键字,用exit代替。

(3)return:直接跳出存储过程或函数。

 

转自:https://blog.csdn.net/qq_17503037/article/details/79261510

 

oracle中的控制语句

原文:https://www.cnblogs.com/shujk/p/12498103.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶