12. Oracle中case when详解
格式:
case expression
when condition_01 then result_01
when condition_02 then result_02
......
when condition_n then result_n
else result_default
end
表达式expression符合条件condition_01,则返回结果result_01,若该条件不满足,则继续往下判断;以此类推,若不满足上一个条件,则继续判断是否满足下一个条件
若以上条件都不满足,则返回默认值result_default,若省略默认值result_default,则返回null
示例
create table T_STUDENT_SCORE
(
studentid VARCHAR2(30) not null,
classid VARCHAR2(30),
score NUMBER,
scorelevel VARCHAR2(30)
)
insert into T_STUDENT_SCORE (studentid, classid, score, scorelevel) values ('StudId01', 'ClasId01', 50, 'E');
insert into T_STUDENT_SCORE (studentid, classid, score, scorelevel) values ('StudId02', 'ClasId01', 60, 'D');
insert into T_STUDENT_SCORE (studentid, classid, score, scorelevel) values ('StudId03', 'ClasId01', 70, 'C');
insert into T_STUDENT_SCORE (studentid, classid, score, scorelevel) values ('StudId04', 'ClasId02', 80, 'B');
insert into T_STUDENT_SCORE (studentid, classid, score, scorelevel) values ('StudId05', 'ClasId02', 90, 'A');
insert into T_STUDENT_SCORE (studentid, classid, score, scorelevel) values ('StudId06', 'ClasId02', 100, 'S');
最后查询表中数据,返回结果如下

【样例展示1】
sql语句如下:
select t.*,case score when 100 then '完美' end as fullScoreFlag from T_STUDENT_SCORE t
返回结果如下图:若是100分,则返回“完美”,否则返回null

【样例展示2】
sql语句如下:
select t.*,case score when 100 then '完美' else '其他' end as fullScoreFlag from T_STUDENT_SCORE t
返回结果如下图:若是100分,则返回“完美”,否则返回“其他”

【样例展示3】
sql语句如下:
select t.*,case score when 100 then '完美' when 90 then '优秀' end as fullScoreFlag from T_STUDENT_SCORE t
返回结果如下图:若是100分,则返回“完美”,若是90分,则返回“优秀”,否则返回null

【样例展示4】
sql语句如下:
select t.*,case score when 100 then '完美' when 90 then '优秀' else '其他' end as fullScoreFlag from T_STUDENT_SCORE t
返回结果如下图:若是100分,则返回“完美”,若是90分,则返回“优秀”,否则返回“其他”

【样例展示5】
sql语句如下:
select * from T_STUDENT_SCORE
order by
case
when scoreLevel='S' then 0
when scoreLevel='A' then 1
when scoreLevel='B' then 2
when scoreLevel='C' then 3
when scoreLevel='D' then 4
else 5 end
asc
返回结果如下图:按成绩评级由高到低排序。

【样例展示6】
sql语句如下:
select
count(*),
case
when scoreLevel='S' then '不错'
when scoreLevel='A' then '不错'
when scoreLevel='B' then '一般'
when scoreLevel='C' then '一般'
when scoreLevel='D' then '较差'
when scoreLevel='E' then '较差'
else '其他' end as scoreRemark
from T_STUDENT_SCORE
group by
case
when scoreLevel='S' then '不错'
when scoreLevel='A' then '不错'
when scoreLevel='B' then '一般'
when scoreLevel='C' then '一般'
when scoreLevel='D' then '较差'
when scoreLevel='E' then '较差'
else '其他' end
返回结果如下图:按成绩评级分组统计学生数量

【样例展示7】
sql语句如下:
select * from T_STUDENT_SCORE where
(case
when scoreLevel='S' then '不错'
when scoreLevel='A' then '不错'
when scoreLevel='B' then '一般'
when scoreLevel='C' then '一般'
when scoreLevel='D' then '较差'
when scoreLevel='E' then '较差'
else '其他' end)='不错'
返回结果如下图:按成绩评级作为条件筛选成绩不错的学生

相关文章:
12. Oracle中case when详解
格式: case expression when condition_01 then result_01 when condition_02 then result_02 ...... when condition_n then result_n else result_default end 表达式expression符合条件condition_01,则返回…...
【电路设计】220V AC转低压DC电路概述
前言 最近因项目需要,电路板上要加上一个交流220V转低压直流,比如12V或者5V这种。一般来说,比较常见也比较简单的做法是使用一个变压器将220V AC进行降压,比如降到22V AC,但是很遗憾的是,支持220V的变压器一般体积很大,而板子留给电源部分的面积又非常有限,所以不得不研…...
网络地址转换NAT-动态NAT的使用范围和配置-思科EI,华为数通
网络地址转换NAT-动态NAT的使用范围和配置 什么是动态NAT? 使用公有地址池,并以先到先得的原则分配这些地址。当具有私有 IP 地址的主机请求访问 Internet 时,动态 NAT 从地址池中选择一个未被其它主机占用的 IP 地址一对一的转化。当数据会话…...
远程连接虚拟机中ubuntu报错:Network error:Connection refused
ping检测一下虚拟机 可以ping通,说明主机是没问题 #检查ssh是否安装: ps -e |grep ssh发现ssh没有安装 #安装openssh-server sudo apt-get install openssh-server#启动ssh service ssh startps -e |grep ssh检查一下防火墙 #防火墙状态查看 sudo ufw…...
快速排序三种思路详解!
一、快速排序的介绍 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,其基本思想为:任取待排序元素序列中 的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,…...
【二叉树入门指南】链式结构的实现
【二叉树入门指南】链式结构的实现 一、前置说明二、二叉树的遍历2.1前序遍历2.2中序遍历2.3 后序遍历 三、以前序遍历为例,递归图解四、层序遍历五、节点个数以及高度等5.1 二叉树节点个数5.2二叉树叶子节点个数5.3 二叉树第k层节点个数5.4 二叉树查找值为x的节点5…...
【位运算】算法实战
文章目录 一、算法原理常见的位运算总结 二、算法实战1. leetcode面试题01.01. 判断字符是否唯一2. leetcode268 丢失的数字3. leetcode371 两整数之和4. leetcode004 只出现一次的数字II5. leetcode面试题17.19. 消失的两个数字 三、总结 一、算法原理 计算机中的数据都以二进…...
C++构建系统
收集C构建系统(2023): 跟我一起写Makefile (PDF重制版)CMake tutorialConan, software package manager for C and C developersvcpkg-repovcpkgGoogle Bazel Build System { Fast, Correct } — Choose twoGN gn_quick_start当前Chromium构建系统 GYP Generate You…...
“深入探索JVM内部机制:理解Java虚拟机的运行原理“
标题:深入探索JVM内部机制:理解Java虚拟机的运行原理 摘要:本篇博客将深入探索Java虚拟机(JVM)的内部机制,帮助读者理解JVM的运行原理。我们将介绍JVM的组成结构,包括类加载器、运行时数据区域…...
java八股文面试[JVM]——双亲委派模型
1.当AppClassLoader去加载一个class时,它首先不会自己去尝试加载这个类,而是把类加载请求委托给父加载器ExtClassLoader去完成。 2.当ExtClassLoader去加载一个class时,它首先也不会去尝试加载这个类,而是把类加载请求委托给父加载…...
NLP与大模型主题全国师资培训班落地,飞桨持续赋能AI人才培养
为了推动大模型及人工智能相关专业人员的培养,8月11日-8月13日,由中国计算机学会主办、机械工业出版社、北京航空航天大学、百度飞桨联合承办 “CCF群星计划之文心高校行- NLP与大模型”主题师资培训班(以下简称培训班)在北京天信…...
Jupyter Notebook 配置根目录
注:本文是在 Windows 10 上配置 Jupyter Notebook 打开的默认根目录,Linux 同。 步骤一:创建 Jupyter Notebook 配置文件 使用以下命令创建 Jupyter Notebook 配置文件(如果尚未创建): jupyter notebook …...
算法 位运算
文章目录 一、&(按位与)运算符二、|(按位或)运算符三、^(异或)运算符四、~(取反)运算符五、<<(左移)运算符六、>>(右移ÿ…...
Linux 虚拟机常用命令
一、文件/文件夹管理 1. ls命令 就是 list 的缩写,通过 ls 命令不仅可以查看 linux 文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。 ls -a 列出目录所有文件,包含以.开始的隐藏文件ls -A 列出除.…...
解决抖音semi-ui的Input无法获取到onChange事件
最近在使用semi-ui框架的Input实现一个上传文件功能时遇到了坑,就是无法获取到onChange事件,通过console查看只是拿到了一个文件名。但若是把<Input>换成原生的<input>,就可以正常获取到事件。仔细看了下官方文档,发现…...
免费的png打包plist工具CppTextu,一款把若干资源图片拼接为一张大图的免费工具
经常做游戏打包贴图的都知道,要把图片打包为一张或多张大图,要使用打包工具TexturePacker。 TexturePacker官方版可以直接导入PSD、SWF、PNG、BMP等常见的图片格式,主要用于网页、游戏和动画的制作,它可以将多个小图片汇聚成一个…...
深层次分析字符数组和字符串的区别是什么?
前言 (1)休闲时刻刷B站,看到一个卖课的,发视频问,char arr1[]{‘H’,‘E’,‘L’,‘L’,‘O’};和char arr2[]“HELLO”;区别是什么。 (2)看那个卖课博主一顿分析,最后成功得出&…...
Redis 的主从复制、哨兵模式、集群脑裂
主从复制 主从复制是 Redis 高可用服务最基础的保证,将一台 Redis 主服务器,同步数据到多台 Redis 从服务器上,即一主多从的模式,且主从服务器之间采用的是「读写分离」的方式。 主服务器可以进行读写操作,当发生写操…...
Pycharm通过SSH配置centos上Spark环境
直接在shell进行pyspark进行编程,程序没有办法写得太长,而且我们希望能够实现一个及时给出结果的编程环境,可以使用pycharm连接centos上的spark,进行本地编程,同步到centos系统中运行程序,并把结果返回pych…...
leetcode做题笔记98. 验证二叉搜索树
给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 思路一:递归 …...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...
CVE-2023-25194源码分析与漏洞复现(Kafka JNDI注入)
漏洞概述 漏洞名称:Apache Kafka Connect JNDI注入导致的远程代码执行漏洞 CVE编号:CVE-2023-25194 CVSS评分:8.8 影响版本:Apache Kafka 2.3.0 - 3.3.2 修复版本:≥ 3.4.0 漏洞类型:反序列化导致的远程代…...
Linux 内存管理调试分析:ftrace、perf、crash 的系统化使用
Linux 内存管理调试分析:ftrace、perf、crash 的系统化使用 Linux 内核内存管理是构成整个内核性能和系统稳定性的基础,但这一子系统结构复杂,常常有设置失败、性能展示不良、OOM 杀进程等问题。要分析这些问题,需要一套工具化、…...
Vue 实例的数据对象详解
Vue 实例的数据对象详解 在 Vue 中,数据对象是响应式系统的核心,也是组件状态的载体。理解数据对象的原理和使用方式是成为 Vue 专家的关键一步。我将从多个维度深入剖析 Vue 实例的数据对象。 一、数据对象的定义方式 1. Options API 中的定义 在 Options API 中,使用 …...
智能体革命:企业如何构建自主决策的AI代理?
OpenAI智能代理构建实用指南详解 随着大型语言模型(LLM)在推理、多模态理解和工具调用能力上的进步,智能代理(Agents)成为自动化领域的新突破。与传统软件仅帮助用户自动化流程不同,智能代理能够自主执行工…...
2025-06-08-深度学习网络介绍(语义分割,实例分割,目标检测)
深度学习网络介绍(语义分割,实例分割,目标检测) 前言 在开始这篇文章之前,我们得首先弄明白,什么是图像分割? 我们知道一个图像只不过是许多像素的集合。图像分割分类是对图像中属于特定类别的像素进行分类的过程,即像素级别的…...
