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. php function_name($type=0,$order_ids='',$flag=2)

    $order_ids='',表示$order_ids是字符串,不是数组 foreach ($order_ids as $key=>$order_id){            //TODO} 这 ...

  2. 开启Mysql慢查询来优化mysql

    开启Mysql慢查询来优化mysql 优化sql语句是优化数据库的一个很重要的方面,那么怎么发现那些耗时耗资源的sql语句呢,开启Mysql慢查询! 1.查看是否开启慢查询,默认情况下是关闭的.你的m ...

  3. Foj1675数论

    http://acm.fzu.edu.cn/problem.php?pid=1675 首先必须知道一点数论的基本公式 (a-b) %c =0 -----> a%c=b%c 首先通过大数取余求出目 ...

  4. 多线程11-Semaphore信号灯

    1.概念 Semaphore可以维护当前访问自身的线程个数,并提供了同步机制.使用Semaphore可以控制同时访问资源的线程个数,例如,实现一个文件允许的并发访问数 2.案例 package org ...

  5. JS实现定时器(类似工行网银支付限时操作)

      js脚本内容: //5秒倒计时 var num = 0 ; var max = 5 ; var id = null ; id = setInterval(box , 1000) ; //1秒钟调用 ...

  6. HTML5 canvas文本属性与方法

    文本属性和方法 font                        设置或返回文本内容的当前字体属性 textAlign                设置或返回文本内容的当前对齐方式 start ...

  7. [算法导论]贪心算法(greedy algorithm)

    转载请注明出处:http://www.cnblogs.com/StartoverX/p/4611544.html 贪心算法在每一步都做出当时看起来最佳的选择.也就是说,它总是做出局部最优的选择,寄希望 ...

  8. Codeforces 704D Captain America

    题意:平面上有n个点,每个点必须涂成红色和蓝色中的一种,花费各为r和b(对所有的点花费都一样).m条限制,每条限制形如"y=b这条直线上两种颜色的点的数目之差的绝对值不能超过c"或 ...

  9. vue访问原生 DOM 事件

    <body> <div id="test"> <button @click="changeColor('你好',$event)"& ...

  10. 编程的宗派(OOP与FP孰优孰劣)--王垠

    编程的宗派 总是有人喜欢争论这类问题,到底是"函数式编程"(FP)好,还是"面向对象编程"(OOP)好.既然出了两个帮派,就有人积极地做它们的帮众,互相唾骂和鄙 ...