CASE 语句

CASE selector
   WHEN value1 THEN action1;
   WHEN value2 THEN action2;
   WHEN value3 THEN action3;
   …..
   ELSE actionN;
END CASE;

CASE表达式

DECLARE
   temp VARCHAR2(10);
   v_num number;
BEGIN
   v_num := &i;
   temp := CASE v_num
     WHEN 0 THEN 'Zero'
      WHEN 1 THEN 'One'
     WHEN 2 THEN 'Two'
   ELSE
       NULL
   END;
   dbms_output.put_line('v_num = '||temp);
END;
/

CASE搜索语句

CASE
   WHEN (boolean_condition1) THEN action1;
   WHEN (boolean_condition2) THEN action2;
   WHEN (boolean_condition3) THEN action3;
   ……
   ELSE    actionN;
END CASE;

CASE搜索表达式

DECLARE
   a number := 20;
   b number := -40;
   tmp varchar2(50);
BEGIN
   tmp := CASE
              WHEN (a>b) THEN 'A is greater than B'
              WHEN (a<b) THEN 'A is less than B'
              ELSE
              'A is equal to B'
              END;
   dbms_output.put_line(tmp);
END;
/

SELECT CASE WHEN 的使用方法

select 与 case结合使用最大的优点有两点,一是在显示查询结果时能够灵活的组织格式,二是有效避免了多次对同一个表或几个表的訪问。以下举个简单的样例来说明。比如表 students(id, name ,birthday, sex, grade),要求按每一个年级统计男生和女生的数量各是多少,统计结果的表头为,年级,男生数量,女生数量。假设不用select case when,为了将男女数量并列显示,统计起来非常麻烦,先确定年级信息,再依据年级取男生数和女生数,并且非常easy出错。用select case when写法例如以下:
SELECT   grade, COUNT (CASE WHEN sex = 1 THEN 1      /*sex 1为男生,2位女生*/
                                            ELSE NULL
                                            END) 男生数,
                            COUNT (CASE WHEN sex = 2 THEN 1
                                            ELSE NULL
                                            END) 女生数
    FROM students GROUP BY grade;

ORACLE CASE WHEN 及 SELECT CASE WHEN的使用方法的更多相关文章

  1. CASE WHEN 及 SELECT CASE WHEN的用法(转)

    Case具有两种格式.简单Case函数和Case搜索函数. 简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END   ...

  2. CASE WHEN 及 SELECT CASE WHEN的用法

    CASE WHEN 及 SELECT CASE WHEN的用法 Case具有两种格式.简单Case函数和Case搜索函数. 简单Case函数 CASE sex WHEN '1' THEN '男' WH ...

  3. ORACLE CASE WHEN 及 SELECT CASE WHEN的用法

    Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END ...

  4. CASE WHEN 及 SELECT CASE WHEN的用法(写了一坨烂代码发现两条sql就行了, 哎)

    转自:http://blog.sina.com.cn/s/blog_4c538f6c01012mzt.html Case具有两种格式.简单Case函数和Case搜索函数. 简单Case函数 CASE  ...

  5. 【转载】CASE WHEN 及 SELECT CASE WHEN的用法

    原文链接:https://www.cnblogs.com/aipan/p/7770611.html Case具有两种格式.简单Case函数和Case搜索函数. 简单Case函数 CASE sex WH ...

  6. oracle 行转列~列转行(几种方法)

    工作中,我们经常会碰到行转列的情况 这里我介绍几种简单的方法--行转列 1.oracle的pivot函数 原表 使用pivot函数: with temp as(select '四川省' nation ...

  7. Oracle select case when

    Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END ...

  8. Oracle 行转列总结 Case When,Decode,PIVOT 三种方式 - 转

    最近又碰到行专列问题了,当时不假思索用的是子查询,做完后我询问面试管行专列标正的写法应该如何写,他告诉我说应该用"Decode",索性我就总结一下,一共三种方式 --======= ...

  9. select case when

    SELECT CASE WHEN dc.defect_code_name IS NOT NULL THEN dc.defect_code_name WHEN sf.second_defect_leve ...

随机推荐

  1. Myeclipse+Tomcat安装与配置

    一: Myeclipse安装很简单,没什么可说的,下面说一下怎么把英文版的Myeclipse汉化的问题 1.把汉化包解压,将解压后的“language”文件夹,放入Myeclipse\common文件 ...

  2. SpringBoot入门系列:第一篇 Hello World

    跟随SpringBoot的文档(http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-d ...

  3. 怎样成为PHP 方向的一个合格的架构师

    突然看到这篇文章, 值得反省, 乐在其中, 在接下来的发展中不被淘汰的都来看看, 如何成为一个架构师先明确这里所指的PHP工程师,是指主要以PHP进行Web系统的开发,没有使用其的语言工作过.工作经验 ...

  4. pydev新工程

    http://www.cnblogs.com/linjiqin/p/3595891.html 明天再编辑一下

  5. [转]C++堆和栈的区别

    一.预备知识―程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. ...

  6. vim编辑器命令

    Vim介绍 vim(vimsual)是Linux/Unix系列OS中通用的全屏编辑器. vim分为两种状态,即命令状态和编辑状态,在命令状态下,所键入的字符系统均作为命令来处理,如:q代表退出,而编辑 ...

  7. yum 安装 kvm

    KVM是什么? for Kernel-based Virtual Machine 安装环境Centos 6.5 mini x64  禁用selinux, 禁用防火墙 安装过程: 1. 查看我们的电脑是 ...

  8. 使用node-webkit开发Clover桌面客户端的一些记录(一)

    首先说一说Clover. 这是一个OA产品,是我们公司组建我们技术部以来最最重要的一项工作 -- 开发企业内部使用的管理系统."Clover"这个名字是我们老大起的,拆开看是&qu ...

  9. oracle数据泵之解决方案(用户)导入导出。

    看到网上有这样的介绍而且很多,但觉得都是大神才能一下子看的懂.自己总结下菜鸟能看懂的. 1.导出. 首先第一步: 操作系统—开始—运行输入“cmd”进入dos界面输入“sqlplus/nolog”按回 ...

  10. 【C#】委托与事件

    一.委托 1.概念:用来存放 方法 指针(地址)的容器. 为什么要有委托?当有的业务代码总体已经实现,但有部分需要调用者来决定,就可以使用委托的方式,让调用者把一段代码以 方法的方式 传入. [例子] ...