Oracle PL/SQL语句块的循环(for、whlie、loop)和判断(if)

一、PL/SQL语句块的循环

1.for循环

--for循环
declare
i int;
j int;
begin
for i in 1..9 loop   --i IN 1..9的意思是循环从1开始到9结束
    for j in 1..i loop
        Dbms_Output.put(i||*||j||=||i*j); --将内容写到内存,等到put_line或new_line时一起输出
        dbms_output.put( );
    end loop;
    dbms_output.put_line(); --输出并换行 
    --dbms_output.new_line;  --作为一行的结束,可以理解为写入buffer时的换行符(换行输出)
end loop;
end;

2.while循环

--while循环
declare
i int:=1;
j int:=1;
begin
while i<=9 loop
  j:=1;
  while j<=i loop
    Dbms_Output.put(i||*||j||=||i*j);
    dbms_output.put( );
    j:=j+1;
  end loop;
  dbms_output.new_line;
  i:=i+1;
end loop;
end;

3.loop循环

--loop循环
declare 
i int:=1;
j int:=1;
begin
loop
  loop
    Dbms_Output.put(i||*||j||=||i*j);
    dbms_output.put(  );
    j:=j+1;
    exit when j>i;  --条件成立就结束子循环
    --dbms_output.put(执行exit后  );
  end loop;
  dbms_output.put_line();
  i:=i+1;
  j:=1;
  exit when i>9;
end loop;
end;

二、PL/SQL语句块的判断(多层If条件判断)

--打开屏幕输出开关,这个是sqlplus命令,在plsql developer里没有,前往cmd窗口连接数据库执行
set serveroutput on;  
--接受键盘输入,变量num:是一个地址值,在该地址上保存了输入的值
accept num prompt 请输入一个数字;
 
declare 
  --定义变量保存输入的数字
  pnum number := &num;
begin
  if pnum < 18 then 
    dbms_output.put_line(未成年人);
  elsif pnum = 18 then
    dbms_output.put_line(刚成年);
  else 
    dbms_output.put_line(已成年);
  end if;
end;
 --斜杠在cmd模式下结束sql语句
/

另外在介绍下CASE-WHEN分支判断,该分支判断和java的switch-case用法大致相同。 先创建一个学生表T_STU。

create table t_stu(  
  stuid      number(10)   primary key,  
  stuname    varchar2(20) not null, 
  stusex     varchar2(2)  default 男 check(stusex in(男,女)),
  stuage     number(10) 
);

建完表后插入几行数据进行测试,输入以下代码

--1.搜索CASE表达式,使用条件确定返回值
SELECT STUNAME,
CASE STUAGE
WHEN 18 THEN 刚成年
WHEN 19 THEN 成年满一年
WHEN 20 THEN 弱冠
ELSE 年龄不详
END STUAGE,
STUSEX
FROM T_STU
--2.带判断条件CASE表达式
SELECT STUNAME,
CASE
WHEN STUAGE<18 THEN 未成年
WHEN STUAGE=18 THEN 刚成年
WHEN STUAGE>18 THEN 已成年
ELSE 年龄不详
END STUAGE,
STUSEX
FROM T_STU`

参考

1.https://www.cnblogs.com/ChineseIntelligentLanguage/p/6441317.html 2.https://blog..net/wanlin77/article/details/80633616

经验分享 程序员 微信小程序 职场和发展