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)='不错'

  返回结果如下图:按成绩评级作为条件筛选成绩不错的学生

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/56291.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

性能测试流程? 怎么做性能测试?

一、前期准备 性能测试虽然是核心功能稳定后才开始压测,但是在需求阶段就应该参与,这样可以深入了解系统业务、重要功能的业务逻辑,为后续做准备。 二、性能需求分析(评审) 评审时,要明确性能测试范围、目…

[足式机器人]Part3机构运动微分几何学分析与综合Ch03-1 空间约束曲线与约束曲面微分几何学——【读书笔记】

本文仅供学习使用 本文参考: 《机构运动微分几何学分析与综合》-王德伦、汪伟 《微分几何》吴大任 Ch01-4 平面运动微分几何学 3.1 空间曲线微分几何学概述3.1.1 矢量表示3.1.2 Frenet标架 连杆机构中的连杆与连架杆构成运动副,该运动副元素的特征点或特…

一文搞懂深度信念网络!DBN概念介绍与Pytorch实战

目录 一、概述1.1 深度信念网络的概述1.2 深度信念网络与其他深度学习模型的比较结构层次学习方式训练和优化应用领域 1.3 应用领域图像识别与处理自然语言处理推荐系统语音识别无监督学习与异常检测药物发现与生物信息学 二、结构2.1 受限玻尔兹曼机(RBM&#xff0…

正确进行自动化测试

前言: 📕作者简介:热爱编程的小七,致力于C、Java、Python等多编程语言,热爱编程和长板的运动少年! 📘相关专栏Java基础语法,JavaEE初阶,数据库,数据结构和算法…

10-案例: 注册登录

项目思路: 1. 首页展示 将数据传递给前端模板渲染 2. 注册用户 接收前端传递的数据,保存后,重定向到首页 3. 删除用户 接收前端传递的用户名,进行删除 4. 修改用户 接收前端传递的数据,老名字进行判断,新数据修改数据 项目结构: 构建蓝图: (1). apps / user / model.py 增…

边写代码边学习之Bidirectional LSTM

1. 什么是Bidirectional LSTM 双向 LSTM (BiLSTM) 是一种主要用于自然语言处理的循环神经网络。 与标准 LSTM 不同,输入是双向流动的,并且它能够利用双方的信息。 它也是一个强大的工具,可以在序列的两个方向上对单词和短语之间的顺序依赖…

react通过ref获取函数子组件实例方法

在react16之后带来了hooks之后,确实方便了很多组件开发,也加快了函数式编程的速度,但是当你通过useRef获取子组件的时候,又恰好子组件是一个函数组件,那么将会报一个错误:报这个错误的主要原因是函数组件没…

数据通信——传输层(UDP)

引言 我们上网观看比赛的时候,一旦网络信号出现问题,那可就太难受了,这意味着卡顿的时间内,你会错过这段时间内的内容。这种特性要归功于UDP(User Datagram Protocol)用户数据报协议。 无连接性 一般的&am…

第十七课:利用 Setup Factory 制作 Qt 软件安装包

功能描述:详细介绍如何利用 Setup Factory 制作 Qt 软件安装包,从 Setup Factory 软件下载、安装,到如何利用 Setup Factory 制作软件安装包,手把手教你将 Qt 应用程序制作成具有安装向导的安装包。 一、Setup Factory 简介 Setu…

qt信号槽同步问题

目录 信号槽: 注意事项: 具体例子: 线程安全问题的例子: 信号槽: 在Qt编程中,信号(Signal)和槽(Slot)是一种用于在对象之间进行通信的机制。信号用于发出…

宇凡微Y51T合封射频芯片,集成433M芯片和MCU

宇凡微推出的Y51T芯片的设计理念很有趣,将MCU和射频芯片集成在一颗芯片内,从而实现高度的集成度和功能优势。这样的设计在某些应用中确实能够带来诸多优点: Y51T将51H MCU和Y4455 433MHz射频芯片融合在一颗芯片内,实现了高度集成的…

Python基础 - 构造函数

目录 基础构造函数 重写 钻石继承 super函数 基础构造函数 命名为_init_,在实例化对象之前会自动执行该函数 构造函数方便我们在实例化对象的时候实现个性化定制 class A():def __init__(self,x,y):self.x xself.y ydef add(self):return self.xself.yclass…

(纯c)数据结构之------>链表(详解)

目录 一. 链表的定义 1.链表的结构. 2.为啥要存在链表及链表的优势. 二. 无头单向链表的常用接口 1.头插\尾插 2.头删\尾删 3.销毁链表/打印链表 4.在pos位置后插入一个值 5.消除pos位置后的值 6.查找链表中的值并且返回它的地址 7.创建一个动态开辟的结点 三.顺序表与链表…

【深度学习】Pytorch训练过程中损失值出现NaN

项目场景 利用Pytorch框架,结合FEDformer开源代码(https://github.com/MAZiqing/FEDformer),将自己的数据集作为输入训练模型。 问题描述 训练过程中,发现打印出来的Train loss, Test loss, Test loss中&#xff0c…

性能调优篇 二、Jvm监控及诊断工具-命令行篇

目录 一、概述1、简单命令行工具 二、jps:查看正在运行的Java程序(掌握)1、是什么?2、测试3、基本语法 三、jstat:查看jvm统计信息(掌握)1、是什么?2、基本语法3、补充 四、jinfo&am…

MongoDB 双机热备那篇文章是 “毒”

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis ,Oracle ,Oceanbase 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请加微信号 liuaustin3 (…

AI 浪潮下,W3AI 如何增强和激励 Web3 玩家研究和决策力?

更加个性化的 AI 服务是怎样的?近年来,不少主打 AI 服务的 Web3 初创项目开始兴起,凭借语音、文字、图像等全方位的用户数据跟踪和使用习惯定义,场景化的 AI Web3 产品开始围绕用户的工作、生活日常提供智能服务。这其中&#xff…

本质矩阵E推R和T

https://zhuanlan.zhihu.com/p/500798616 https://zhuanlan.zhihu.com/p/435306687

【MySQL系列】Select语句单表查询详解入门(SELECT,AS,模糊查询,运算符,逻辑运算符)

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

SCI论文创新思路

SCI论文创新思路 一、 创新的分类1、算法创新2、架构创新3、迁移创新4、思想创新5、方法创新6、组合创新 二、组合创新的必要性三、组合创新的流程四、组合创新举例1、组合创新公式2、生活中的例子3、关于CV的例子4、魔改的方法 一、 创新的分类 1、算法创新 比如提出CNN、LS…