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;

ORACLE CASE WHEN 及 SELECT CASE WHEN的使用方法

时间: 2024-12-16 02:08:02

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

oracle菜鸟学习之 select case when的使用

[toc] oracle菜鸟学习之 select case when的使用 格式语法 case when 条件1 then action1 when 条件2 then action2 when 条件3 then action3 when 条件N then actionN else action end 例子 判断现在是几月 SQL> select case substr('20181118',5,2) 2 when '08' then '8yue' 3 when '09' then '9yue'

ORACLE CASE WHEN 及 SELECT CASE WHEN的用法

Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要

CASE WHEN 及 SELECT CASE WHEN的用法

sql中的CASE WHEN then 也可以理解为程序中的三元表达式,可以实现相同的功能,不过CASE WHEN then功能更强大 示例一 简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 示例二 根据这个国家人口数据,统计亚洲和北美洲的人口数量 如果使

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

转自:http://blog.sina.com.cn/s/blog_4c538f6c01012mzt.html Case具有两种格式.简单Case函数和Case搜索函数. 简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END     种方式,可以实现相同的功能.

Oracle select case when

Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要

select case when if 的一些用法

概述:sql语句中的case语句与高级语言中的switch语句,是标准sql的语法,适用于一个条件判断有多种值的情况下分别执行不同的操作. 首先,让我们看一下CASE的语法.在一般的SELECT中,其语法格式如下: CASE   <单值表达式>        WHEN <表达式值> THEN <SQL语句或者返回值>        WHEN <表达式值> THEN <SQL语句或者返回值>        ...        WHEN <表

select case when

SELECT CASE WHEN dc.defect_code_name IS NOT NULL THEN dc.defect_code_name WHEN sf.second_defect_level_name IS NOT NULL THEN sf.second_defect_level_name WHEN fd.first_defect_level_name IS NOT NULL THEN fd.first_defect_level_name ELSE '' END FROM dual)

浅谈case语句与select语句

case语句与select语句 case语句: 多分支if语句: if CONDITION1;then 分支1 elif CONDITION2;then 分支2 ... else CONDITION;then 分支n fi 例如下面这段代码,我们可以使用while语句内嵌套if语句实现, #!/bin/bash cat << EOF cpu) display cpu information mem) display memory information disk) display disks

SELECT CASE 语句使用方法

SELECT CASE 语句 ****** select id ,'sexNo'= case when sex='先生' then 2 when sex='女士' then 3 else 1 end ,age FROM [ comsiterefer] SELECT CASE 语句使用方法