Oracle 学习笔记9 —— 逻辑控制语句1

一、if语句
1、if ... then 语句

单分支if语句,与Java相似。语法如下:

if <expression> then
  pl/sql statement;
end if;

SQL> set serveroutput on
SQL> declare
  2    num1 integer := 4;
  3    num2 integer := 2;
  4
  5  begin
  6    if num1 > num2 then
  7      dbms_output.put_line('num1 > num2');
  8    end if;
  9  end;
 10  /
num1 > num2

PL/SQL 过程已成功完成。

2 if ... then ... else 语句

加上一个else分支。

if <expression> then
  pl/sql statement;
else
  pl/sql statement;
end if;

SQL> set serveroutput on
SQL> declare
  2    num1 number := 4;
  3    num2 number := 2;
  4  begin
  5    if num1 > num2 then
  6      dbms_output.put_line('num1 > num2');
  7    else
  8      dbms_output.put_line('num1 <= num2');
  9    end if;
 10  end;
 11  /
num1 > num2

PL/SQL 过程已成功完成。

3 if ... then ... elsif  语句
SQL> set serveroutput on;
SQL> declare
  2    year_date number;
  3    leap Boolean;
  4  begin
  5    year_date := 2013;
  6
  7    if mod(year_date,4)<>0 then
  8      leap := false;
  9    elsif mod(year_date, 100) <> 0 then
 10      leap := true;
 11    elsif mod(year_date, 400) <> 0 then
 12      leap := false;
 13    else
 14      leap := true;
 15    end if;
 16
 17    if leap then
 18      dbms_output.put_line(year_date || '是闰年');
 19    else
 20      dbms_output.put_line(year_date || '是平年');
 21    end if;
 22  end;
 23  /
2013是平年

PL/SQL 过程已成功完成。

Oracle的if语句与Java等语言类型,需要注意的是,Oracle中的关键字和java等语言不同。


二、case 条件语句

有了if语句,当然也有switch 语句。case条件语句有两种形式。一种是获取一个选择器的值,然后将其与每个when字句进行比较。语法如下:

case <selector>
  when <expression1> then statement 1;
  when <expression2> then statement 2;
  ……
  when <expressionn> then statement n;
  [else statement n+1;]
end;
另一种形式是不适用选择器,判断每个when字句中的条件。这种case语句的语法结构如下:

case
  when expressionn 1 then statement 1;
  when expressionn 2 then statement 2;
  ……
  when expressionn n then statement n;
  [else statement n+1;]
end;
/
这里以第二种为例。下边的括号可以省略,Java写习惯了,有点强迫症。。。
SQL> set serveroutput on
SQL> declare
  2    salary number;
  3  begin
  4    salary := 8000;
  5
  6    case
  7      when salary < 5000 then
  8        dbms_output.put_line('贫民');
  9      when (salary >= 5000 and salary < 10000) then
 10        dbms_output.put_line('屌丝');
 11      when (salary >= 10000 and salary < 20000) then
 12        dbms_output.put_line('平民');
 13      else
 14        dbms_output.put_line('...');
 15      end case;
 16  end;
 17  /
屌丝

PL/SQL 过程已成功完成。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值