当前位置:首页 > 开发 > 数据库 > 正文

oracle 中的 CASE

发表于: 2012-04-05   作者:as619864232   来源:转载   浏览次数:
摘要: oracle 中的 CASE 可以作为一个选择控制语句,可以根据条件从多个分支选择相应的执行动作,内部至少存在一个分支。也可以作为表达式使用,返回一个值。   CASE 的语法格式   CASE [selector] when 表达式1 then 执行语句1; when 表达式2 then 执行语句2; when 表达式3 then

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

oracle 中的 CASE

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
-- 每月入职人数统计 CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 ELSE 结果N END AS ALIAS
供应商评价管理系统中要对供应商的品质等级进行划分,规则如下: 根据供应商的综合得出其品质等级。
select * from biz_person_impl; --人员表 select * from dm_professional_title; --专家技术职称 s
1.查询 select case when sex = '男' then '1' when sex = '女' then '2' else '3' end 性别编号 fro
sql语言中有没有类似C语言中的switch case的语句?? 没有,用case when 来代替就行了. 例如,下面的
ITeye的用户名和密码找不到了,苦逼的我,只能转战新浪博客了。在我们的CI环境下的自动化项目,加之
前段时间在使用Oracle开发数据统计的时候,遇到一个动态行转列、列转行的问题,最终实现如下的效果
在oracle世界,你可以使用: 1)case表达式 或者 2)decode函数 来实现逻辑判断。Oracle的DECODE函
年前抽空到兄弟公司支援了一下Oracle迁移MySQL的测试,本想把MySQL调优到接近Oracle的性能即可,但
在oracle世界,你可以使用: 1)case表达式 或者 2)decode函数 来实现逻辑判断。Oracle的DECODE函
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号