zoukankan      html  css  js  c++  java
  • ORACLE CASE WHEN 及 SELECT CASE WHEN的使用方法

     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;

  • 相关阅读:
    C++ 把输出结果写入文件/从文件中读取数据
    转载:C++之高精度算法
    借助bool判断使冒泡排序效率提高
    启程
    2017总结,2018的路
    mysql 分组排序
    2021年VS2019最新有效的调试ASP.NET Core源码
    神级Java程序员 开车教你基础开发,最简单 微型Java Web框架
    手把手教你 基础 整合最优雅SSM框架:SpringMVC + Spring
    学习Java绝对要懂的,Java编程中最常用的几种排序算法!
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3865542.html
Copyright © 2011-2022 走看看