`
as619864232
  • 浏览: 321556 次
社区版块
存档分类
最新评论

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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics