oracle 中的 CASE

oracle 中的 CASE 可以作为一个选择控制语句,可以根据条件从多个分支选择相应的执行动作,内部至少存在一个分支。也可以作为表达式使用,返回一个值。

 

CASE 的语法格式

 

CASE [selector]
  when 表达式1 then
    执行语句1;
  when 表达式2 then
    执行语句2;
  when 表达式3 then
    执行语句3;
  [else 语句序列 N]
    执行语句 N;
END CASE;
 

 

declare
begin
  case
    when 1=1 then
      raise_application_error(-20001,1);
    when 2=1 then
      raise_application_error(-20001,2);
    when 3=1 then
      raise_application_error(-20001,3);
  end case;
end;
--弹出1

declare
  res number:=2;
begin
  case res
    when 1 then
      raise_application_error(-20001,1);
    when 2 then
      raise_application_error(-20001,2);
    when 3 then
      raise_application_error(-20001,3);
    else
      raise_application_error(-20001,0);
  end case;
end;
--弹出 2

declare
  res number:=5;
begin
  case res
    when 1 then
      raise_application_error(-20001,1);
    when 2 then
      raise_application_error(-20001,2);
    when 3 then
      raise_application_error(-20001,3);
  end case;
end;
--报错,ELSE 块可以省略,但没找到匹配时,就报错

 

使用 CASE 给变量赋值

 

declare
  res number;
begin
  res:=
  case
    when 1=1 then
      1                 --只能由一个值,且没分号
    when 2=1 then
      2
    when 3=1 then
      3
  end;   --END 后面没有 CASE
  raise_application_error(-20001,res);
end;
--弹出1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值