`
cxx2cxx
  • 浏览: 10075 次
  • 性别: Icon_minigender_2
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

oracle 的if...else 和 case

 
阅读更多
declare i varchar2(10);
begin
i:='0';
  if i='0' then       dbms_output.put_line('正常');
  elsif i='1' then       dbms_output.put_line('不可思议');
   else
       dbms_output.put_line('不知道');
  end if;
end;








case when else 基本结构:
case n
when 1 then Action1;
when 2 then Action2;
when 3 then Action3;
else        ActionOther;
end;
示例一:
SELECT col1, col2,  
       CASE  
          WHEN col3 > 1 AND col3 <2  
             THEN '1'  
          WHEN col3 > 2 AND col3 <3  
             THEN '2'  
          WHEN col3 > 3 AND col3 <4  
             THEN '3'  
          ELSE '4'  
       END mylevel  
FROM table_51xit
case when else语法要点说明如下:
1、以CASE开头,以END结尾
2、分支中WHEN 后跟条件,THEN为显示结果
3、ELSE 为除此之外的默认情况,类似于高级语言程序中switch case的default,可以不加
4、END 后跟别名

示例:更复杂的示例代码:
select d.districtcode,(case when (substr(d.districtcode,3,6) = '0000') then ('100000'||substr(d.districtcode,1,2))
                     when (substr(d.districtcode,5,6) = '00') then ('100000'||substr(d.districtcode,1,2)||'00'||substr(d.districtcode,3,2))
                     else ('100000'||substr(d.districtcode,1,2)||'00'||substr(d.districtcode,3,2)||'00'||substr(d.districtcode,5,2))
                     end) unitcode From vcmdistrictcode d where
not exists
(
select 1 From vcmunitinfo u where u.unitdistrictcode=d.districtcode
and u.unitcode=(case when (substr(d.districtcode,3,6) = '0000') then ('100000'||substr(d.districtcode,1,2))
                     when (substr(d.districtcode,5,6) = '00') then ('100000'||substr(d.districtcode,1,2)||'00'||substr(d.districtcode,3,2))
                     else ('100000'||substr(d.districtcode,1,2)||'00'||substr(d.districtcode,3,2)||'00'||substr(d.districtcode,5,2))
                     end)
)

分享到:
评论

相关推荐

    oracle存储过程进阶

    介绍了oracle存储过程中常见的sql写法,游标(隐式,显式),触发器, CASE ... WHEN ... THEN ...ELSE ... END,IF... THEN ... ELSIF ...THEN...ELSE...END IF,记录类型变量定义和使用 ,%type定义变量,%rowtype定义变量...

    ORACLE OSB开发指南

    ORACLE OSB开发指南,英文版。 目录: Part I IDE Help for Oracle Service Bus 1 Introduction to Oracle Service Bus 2 Tasks Working with Projects, Folders, Resources, and Configurations .....................

    Oracle_case_when_用法

    详细讲解了case、when的用法.ASE表达式可以在SQL中实现if-then-else型的逻辑,而不必使用PL/SQL。CASE的工作方式与DECODE()类似,但应该使用CASE,因为它与ANSI兼容。

    《Oracle Database编程指南》14-03:CASE表达式(CASE Expressions)

    CASE表达式让我们使用IF ... THEN ... ELSE逻辑,而不必调用过程。 2、分类 CASE表达式分为简单CASE表达式和搜索CASE表达式。 3、简单CASE表达式 在一个简单的CASE表达式中,当表达式expr的值等于比较表达式...

    oracle database 10g 完整参考手册part1

    第16章 DECODE和CASE SQL中的if-then-else 第17章 创建和管理表、视图、索引、群集和序列 第18章 Oracle基本安全 第Ⅲ部分 高级内容 第19章 高级安全性—— 虚拟专用数据库 第20章 使用表空间 第21章 用SQL*Loader...

    oracle入门很简单10.zip

    oracle中的控制语句。 包括:条件语句 ifelse case when 循环语句 无条件循环 while循环 for循环

    Oracle_Database_11g完全参考手册.part2

    原书名: Oracle Database 11g The Complete Reference 原出版社: McGraw-Hill Osborne Media ... 第16章 decode 和case:sql中的if-then-else  第17章 创建和管理表、视图、索引、群集和序列  第18章 分区

    Oracle_Database_11g完全参考手册.part5

    原书名: Oracle Database 11g The Complete Reference 原出版社: McGraw-Hill Osborne Media ... 第16章 decode 和case:sql中的if-then-else  第17章 创建和管理表、视图、索引、群集和序列  第18章 分区

    Oracle_plsql基本语法笔记.txt

    if / else 的用法 case 的用法 标题 错误定义 error的设定 exception用法 标题 存储过程及函数 procedure 的建立和调用 function的建立和调用 标题 参数的调用(in 模式为按址调用,out / in out模式...

    Oracle_Database_11g完全参考手册.part3/3

    第16章 DECODE和CASE.SQL中的if-fhen-else 第17章 创建和管理表、视图、索引、群集和序列 第18章 分区 第19章 Oracle基本安全 第Ⅲ部分 高级主题 第20章 高级安全性-虚拟专用数据库 第21章 高级安全性:透明数据加密...

    Oracle_Database_11g完全参考手册.part2/3

    第16章 DECODE和CASE.SQL中的if-fhen-else 第17章 创建和管理表、视图、索引、群集和序列 第18章 分区 第19章 Oracle基本安全 第Ⅲ部分 高级主题 第20章 高级安全性-虚拟专用数据库 第21章 高级安全性:透明数据加密...

    Oracle_Database_11g完全参考手册.part3

    基本信息 原书名: Oracle Database 11g The Complete Reference 原出版社: McGraw-Hill Osborne ... 第16章 decode 和case:sql中的if-then-else  第17章 创建和管理表、视图、索引、群集和序列  第18章 分区

    Oracle_Database_11g完全参考手册.part4

    原书名: Oracle Database 11g The Complete Reference 原出版社: McGraw-Hill Osborne Media ... 第16章 decode 和case:sql中的if-then-else  第17章 创建和管理表、视图、索引、群集和序列  第18章 分区

    ORACLE多条件统计查询的简单方法

    一开始便想到了UNION和IF语句,然后写了1000多行代码,就为了查30条数据觉得不应该。 然后就开始百度,多种条件下的统计。然后有一种语法让我眼前一亮,case when then else end 当满足CASE设定的条件时,就可以...

    oracle知识总结

    oracle系统学习总结包涵oracle的语法if else case when,触发器 游标函数等常用知识总结,希望对你有帮助!

    oracle database 11g 完整参考手册中文高清完整版part3

     第16章 decode 和case:sql中的if-then-else  第17章 创建和管理表、视图、索引、群集和序列  第18章 分区 . 第19章 oracle 基本安全 第ⅲ部分 高 级 主 题  第20章 高级安全性——虚拟专用数据库  第21章 ...

    oracle database 11g 高清完整中文版part2

     第16章 decode 和case:sql中的if-then-else  第17章 创建和管理表、视图、索引、群集和序列  第18章 分区 . 第19章 oracle 基本安全 第ⅲ部分 高 级 主 题  第20章 高级安全性——虚拟专用数据库  第21章 ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle建议用户自己设计数据库管理和安全的权限规划,而不要简单的使用这些预定角色。将来的版本中这些角色可能不会作为预定义角色。  DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE,SELECT_CATALOG_ROLE这些角色...

    racle_Database_11g完全参考手册.part1

    原书名: Oracle Database 11g The Complete Reference 原出版社: McGraw-Hill Osborne Media ... 第16章 decode 和case:sql中的if-then-else  第17章 创建和管理表、视图、索引、群集和序列  第18章 分区

    Oracle中的SUM用法讲解

    Oracle中的SUM条件查询 1、按照区域编码分组查询区域编码、IPTV_NBR不为空的数量、ACC_NBR不为空的数量、所有用户数量 SELECT AREA_CODE, SUM ( CASE WHEN IPTV_NBR IS NULL or IPTV_NBR = '' THEN 0 ELSE 1 END ),...

Global site tag (gtag.js) - Google Analytics