oracle case when的用法

Oracle case when 详解 文章目录1 概述2 示例: when 执行顺序3 ORA-06592: 执行 CASE 语句时未找到 CASE 1 概述 1. case when:条件判断语句 (1) 相当于其它语言中的 if else (2) 部分情况下,等同于 decode() 2. case when 表达式用两种形式 -- 简单 case 函数,要求:when 对象的类型 和 case 对象的类型一致 -- 此时等同于 decode(sex, '1', '男', '2', '女') case sex 阅读详情

Oracle CASE WHEN 用法介绍

1. CASE WHEN 表达式有两种形式

复制代码
--简单Case函数  

CASE sex  
WHEN '1' THEN '男'  
WHEN '2' THEN '女'  
ELSE '其他' END  

--Case搜索函数  

CASE
WHEN sex = '1' THEN '男'  
WHEN sex = '2' THEN '女'  
ELSE '其他' END  
复制代码

 

2. CASE WHEN 在语句中不同位置的用法

2.1 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;
复制代码

 

2.3 WHERE CASE WHEN 用法
复制代码
SELECT T2.*, T1.*
   FROM T1, T2
  WHERE (CASE WHEN T2.COMPARE_TYPE = 'A' AND
                   T1.SOME_TYPE LIKE 'NOTHING%'
                THEN 1
              WHEN T2.COMPARE_TYPE != 'A' AND
                   T1.SOME_TYPE NOT LIKE 'NOTHING%'
                THEN 1
              ELSE 0
           END) = 1
复制代码

 

2.4 GROUP BY CASE WHEN 用法
复制代码
SELECT  
CASE WHEN salary <= 500 THEN '1'  
WHEN salary > 500 AND salary <= 600  THEN '2'  
WHEN salary > 600 AND salary <= 800  THEN '3'  
WHEN salary > 800 AND salary <= 1000 THEN '4'  
ELSE NULL END salary_class, -- 别名命名
COUNT(*)  
FROM    Table_A  
GROUP BY  
CASE WHEN salary <= 500 THEN '1'  
WHEN salary > 500 AND salary <= 600  THEN '2'  
WHEN salary > 600 AND salary <= 800  THEN '3'  
WHEN salary > 800 AND salary <= 1000 THEN '4'  
ELSE NULL END;  
复制代码

 

3.关于IF-THEN-ELSE的其他实现

3.1 DECODE() 函数
复制代码
select decode(sex, 'M', 'Male', 'F', 'Female', 'Unknown')
from   employees;
复制代码

貌似只有Oracle提供该函数,而且不支持ANSI SQL,语法上也没CASE WHEN清晰,个人不推荐使用。

3.2 在WHERE中特殊实现
复制代码
SELECT T2.*, T1.*
   FROM T1, T2
  WHERE (T2.COMPARE_TYPE = 'A' AND T1.SOME_TYPE LIKE 'NOTHING%')
         OR
        (T2.COMPARE_TYPE != 'A' AND T1.SOME_TYPE NOT LIKE 'NOTHING%')
复制代码

这种方法也是在特殊情况下使用,要多注意逻辑,不要弄错

Oracle的Case When then end的用法 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搜索函数相比,功能方面会有些限制,比如写判断式。... 阅读详情

相关推荐

R语言中的case_when函数和ifelse函数

在上面的示例中,我们根据不同的分数范围使用case_when函数给出了相应的评级。综上所述,case_when函数和ifelse函数都是在R语言中用于条件判断的常用函数。在R语言中,有两个常用的条件语句函数,分别是case_when函数和ifelse函数。其中,条件1、条件2等表示要判断的条件表达式,结果1、结果2等表示在满足对应条件时要执行的操作或返回的值。其中,条件表示要判断的条件表达式,结果1表示在条件为TRUE时要执行的操作或返回的值,结果2表示在条件为FALSE时要执行的操作或返回的值。

2301_79326588的博客 1436

Oracle中case when详解

Oracle中case when详解,包括使用格式、使用说明、样例展示。

实泽有之,无泽虚之 4万+

oracle where case when where后面跟case when

NULL 博文链接:https://vernonchen163.iteye.com/blog/1908053

Oracle CASE WHEN 用法介绍

1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASEWHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END   2. CASE WHEN...

weixin_34220834的博客 1180

网络设备心跳线带宽高导致虚拟化平台不稳定的问题处理

本文记录了网络设备心跳线带宽高导致虚拟化平台不稳定的问题处理一例。

forestqq的博客 2226

IP路由原理、静态路由及动态路由区分

什么是路由 路由是指导IP报文发送的路径信息。 直连路由:目的地所在网络与路由器直接相连。 间接路由:目的地所在网络与路由器非直接相连。 静态路由是由管理员手工配置而生成的路由。 动态路由路由器使用路由协议从其他路由器那里获悉的路由。

weixin_42227328的博客 5468

Oracle中case when的用法

Oracle中case when的用法 case when 表达式是一个通用条件的表达式,可以在表达式有效的任何位置使用。 用法如下: CASE WHEN condition THEN result [ WHEN condition THEN result ] ... [ ELSE result ] END condition:返回一个布尔结果的表达式。如果结果为...

远行客的博客 19万+

✨从零搭建 Ubuntu22.04 + Python3.11 + PyTorch2.5.1 GPU Docker 镜像并上传 Docker Hub

构建一个带 GPU 支持的深度学习开发镜像;使用 PyTorch 2.5.1(CUDA 12.4)环境;发布并托管 Docker 镜像至 Docker Hub;验证 GPU 环境正常运行!🎉 这将极大提升你的项目部署效率,尤其是在多人协作或跨平台部署场景中。

用大模型重构生活:猫奴程序员的AI智能日常记录 1576

Oracle中Case When的用法

一、Case的两种表达式 1.1、简单的case表达式 SELECT CASE 列名 WHEN 值1 THEN 結果1 WHEN 值2 THEN 結果2 ELSE 结果3 END FROM table1; 1.2、检索的cse表达式 SELECT CASE WHEN 条件1 THEN 条件1的結果 WHEN 条件2 THEN 条件2的結果 ELSE 条件1,2以外的结果 END FROM table1; 二、Case的不同用法 2.1、作为求个

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 4万+

学习 考证 帆软 FCP-FineBI V6.0 考试经验

参加这个学习班,认识了新朋友,可能是我职业生涯中的一次重要体验,其实大家想想 IT 和 医生一样都是需要终身学习的。只是医生学习周期更长但是回报率也更高。大家觉的呢?

小 tom的博客 6223

PyCharm 2024最新版图文安装教程(python环境搭建+PyCharm安装+运行测试+汉化+背景图设置)

PyCharm 2024新版图文安装教程(python环境搭建+PyCharm安装+运行测试+汉化+背景图设置)

Code_流苏:在代码中寻诗意,在实践中觅真知 4万+

oracle中的case when then else end 用法

Oracle中Case when 的用法,使用表达式确定返回值. 1.1、语法:   CASE search_expression   WHEN expression1 THEN result1   WHEN expression2 THEN result2   WHEN expressionN THEN resultN   ELSE default_result 1.2、例子: C...

Abracadabra__的博客 2194

STM32串口控制LED灯的亮灭

STM32中的串口控制LED灯的亮灭,分为两种方式,一种是直接发送数字0和1来控制灯的亮灭,另一种是通过发送字符串来控制。 我所使用的开发板主控芯片是STM32F401RET6,主频84MHz, 首先要进行串口的初始化: /* 函数功能:串口的初始化 函数名:Usart_Init 返回值:无 参数:u32 brr 备注: USART1_TXD->PA9 USART1_RXD->PA10 */ void Usart_Init(u32 brr) { float div; u16 div

博客 2万+

oracle case when 用法总结

Oracle dbms_job package 用法小结 ORACLE CASE WHEN 及 SELECT CASE WHEN的用法   Case具有两种格式。简单Case函数和Case搜索函数。 --简单case函数 case sex when '1' then '男' when '2' then '女' else '其他' end   ...

zhengun的专栏 526

【实战项目开发技术分享】ROS1.0、ROS 2.0和CyberRT开源通信框架对比

随着机器人和自动驾驶技术的飞速发展,开源通信框架在机器人、自动驾驶行业扮演着重要的角色。ROS1.0是一个广泛应用于机器人领域的开源框架,ROS 2.0是其改进版本,而CyberRT是Baidu Apollo自动驾驶平台的通信框架。ROS和ROS 2.0都注重灵活性和共享性,适用于各种机器人应用。CyberRT则专注于实时性和高性能,适用于自动驾驶等对实时性要求较高的场景。选择适合的框架取决于具体应用需求和开发者的偏好。

xiewf的博客 2万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

oracle case函数用法,ORACLE CASE WHEN用法

祝大家新年快乐,有任何问题可与我联系:ORACLE CASE WHEN其实就相当于我们程序当中的IF语句,他的语法结构是:CASE WHEN "条件表达式" THEN"语句1"ELSE"语句2"ENDCASE WHEN "条件表达式" THEN"语句1"ELSE"语句2"END意思相信大家都明白,当条件满足时持行语句1,否则持行语句2其实他的用处很多,如对SELECT中字段进行处理:有时候我们在处...

weixin_34901243的博客 1638

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

oracle case when 的用法

在Oracle数据库中,CASE WHEN语句是一个条件表达式,它允许你基于不同的条件执行不同的操作。该语句在SELECTUPDATEDELETE语句以及PL/SQL块中都非常有用。下面是关于CASE WHEN。

weixin_41203765的博客 9126

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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  

oracle 数据库优化-松森科技 5万+

oracle case when用法

Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数   CASE sex   WHEN '1' THEN '男'   WHEN '2' THEN '女'   ELSE '其他' END   --Case搜索函数   CASE WHEN sex = '1' THEN '男'   WHEN s

Never_Give_Up专栏 637

oracle中 case when,Oracle CASE WHEN的用法

CASE WHEN的两种表达形式:方式一:CASEWHEND10='成功签收'THEN1WHEND11='成功签收'THEN1ELSENULLENDWHEN中间是用判断表达式方式二:CASED10WHEN'成功签收'THEN1WHEN'运输途中'THEN2ELSE'其他状态'END方式一适合对一条记录中的多列进行判断。方式二适合对一列中的多个条记录进行判断。...

weixin_39815600的博客 888
上一篇: JAVA 过滤器的实现
下一篇: ipse中Debug 为什么显示source not found
职业驱魔师
博客等级 码龄16年 16粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值