SQL进阶:CASE表达式

SQL进阶:一、CASE表达式 神奇的CASE表达式。 阅读详情

目录

1、用一条SQL语句进行不同条件的统计

建表语句(MySQL8):

录入数据: 

*按性别统计SQL

输出结果(行列转换)

2、在UPDATE语句里进行条件分支

建表语句(MySQL8):

录入数据:

要求:

按要求编写SQL:

输出结果:

3、课程表行列转换 

建表语句(MySQL8)

录入数据:

要求:

SQL:

输出结果


1、用一条SQL语句进行不同条件的统计

建表语句(MySQL8):
CREATE TABLE `city_population` (
	`city` VARCHAR(50) NULL DEFAULT NULL COMMENT '城市' COLLATE 'utf8mb4_0900_ai_ci',
	`sex` TINYINT(3) NULL DEFAULT NULL COMMENT '性别',
	`population` INT(10) NULL DEFAULT NULL COMMENT '人口(万)'
)
COMMENT='城市人口表'
COLLATE='utf8mb4_0900_ai_ci'
ENGINE=InnoDB
;
录入数据: 

*按性别统计SQL
SELECT 
city,
SUM(case when sex = 1 then population ELSE 0 END) AS 男,
SUM(case when sex = 2 then population ELSE 0 END) AS 女
FROM city_population 
GROUP BY city  
输出结果(行列转换)

2、在UPDATE语句里进行条件分支

建表语句(MySQL8):
CREATE TABLE `people_salary` (
	`name` VARCHAR(50) NULL DEFAULT NULL COMMENT '员工' COLLATE 'utf8mb4_0900_ai_ci',
	`salary` INT(10) NULL DEFAULT NULL COMMENT '薪资'
)
COMMENT='员工薪资表'
COLLATE='utf8mb4_0900_ai_ci'
ENGINE=InnoDB
;
录入数据:

要求:

对工资30000以上(含)的员工降薪10%

对工资28000以下的员工加薪20%

按要求编写SQL:
UPDATE people_salary 
SET 
salary = case 
when salary >= 30000
then salary * 0.9
when salary <= 28000
then salary * 1.2
ELSE salary END 
输出结果:

3、课程表行列转换 

建表语句(MySQL8)
CREATE TABLE `courses` (
	`name` VARCHAR(50) NULL DEFAULT NULL COMMENT '姓名' COLLATE 'utf8mb4_0900_ai_ci',
	`course` VARCHAR(50) NULL DEFAULT NULL COMMENT '课程' COLLATE 'utf8mb4_0900_ai_ci'
)
COMMENT='课程表'
COLLATE='utf8mb4_0900_ai_ci'
ENGINE=InnoDB
;
录入数据:

要求:

展示学生的课程选择信息。

SQL:
SELECT NAME,case when SUM(case when course = 'SQL入门' then 1 ELSE NULL END ) = 1 then 'O' ELSE NULL END AS 'SQL入门',
case when SUM(case when course = 'UNIX基础' then 1 ELSE NULL END ) = 1 then 'O' ELSE NULL END AS 'UNIX基础',
case when SUM(case when course = 'Java中级' then 1 ELSE NULL END ) = 1 then 'O' ELSE NULL END AS 'Java中级'
FROM courses
GROUP BY NAME;
输出结果(行列转换)

MICK-SQL进阶教程 1.1 CASE表达式 1.1 CASE表达式 表达式概述 -- 简单 CASE 表达式 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END -- 搜索 CASE 表达式 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' EN... 阅读详情

相关推荐

从理论到板级:FOC电机驱动硬件电路全链路设计解析

本文从硬件工程师视角,深度解析FOC电机驱动从理论到板级实现的全链路设计。重点剖析了电源保护、核心采样电路、三相逆变桥与驱动电路等关键硬件模块的设计要点与实战经验,强调硬件是FOC算法可靠运行的基石,并提供了PCB布局布线的核心原则,帮助开发者构建高性能、高可靠性的电机驱动硬件平台。

weixin_29240711的博客 331

SQL的进阶之路01:CASE表达式的使用

CASE表达式

m0_58768327的博客 1075

企业IT运维实录:批量部署银河麒麟V10-SP1,Ghost镜像与UKey激活实战

本文详细介绍了企业级银河麒麟V10-SP1操作系统的批量部署全流程,包括标准化镜像制作、自动化封装技术、网络化部署方案及UKey集群激活方案。通过实战案例和技术要点解析,帮助企业IT运维团队大幅提升部署效率,确保系统安全与稳定性。

weixin_30729609的博客 387

SQL进阶:多表查询、聚合函数与CASE表达式实战指南

在关系型数据库中,数据通常分散在多个相互关联的表中。为了从这些表中提取和组合信息,需要掌握多表查询技术,其核心原理是通过主键与外键建立表间的逻辑连接,包括内连接、左外连接等。聚合函数(如SUM、AVG、COUNT)则用于对数据进行汇总计算,结合GROUP BY子句可实现按组统计,而HAVING子句用于对分组后的结果进行筛选。CASE表达式为SQL注入了灵活的条件逻辑,允许根据不同条件动态计算值或打标签。这些技术共同构成了数据分析与报表生成的基础,能高效解决诸如统计部门平均薪资、生成客户订单关联报表等实际业务

weixin_34208185的博客 317

ISA-95(S95)标准详解

ISA-95是制造业系统集成的“通用语言”,通过分层模型和信息流规范,打通企业计划层与设备控制层,成为实现数字化工厂的核心标准之一。其与ISA-88的协同应用,可进一步优化生产执行与资源管理的效率。标准,旨在解决企业商业系统(如ERP)与工业控制系统(如MES、SCADA)之间的集成问题。

「东哥说MES」 专注于MES制造执行系统,为你拆解核心架构、功能模块及与ERP/PLC的集成逻辑。提供从入门到精通的系列干货、精选行业报告与实用工具,构建你的数字化知识体系,关注我,用实战经验照亮你的数字化之路。 3735

高通camera调试经验总结

修改AF对焦模式 adb shell setprop vendor.debug.camera.af.manual 2 //使能手动对焦 adb shell setprop vendor.debug.camera.af.manual 0 //使能自动对焦

weixin_43381364的博客 1万+

case when then else_算法工程师SQL进阶:强大的Case表达式

别叫我算法工程师,我是sql-boy!相信大家对SQL都非常熟悉了,可能有些小伙伴会有疑问,算法工程师不是跑模型的吗?还需要学SQL?其实,很有必要!原因大概有以下几点吧:(1)算法工程师很重要的一个能力就是探索数据、挖掘价值的能力,而数据从哪里来:SQL;(2)目前很多厂都已经对机器学习pipeline做了很好的封装,其实几年前就可以通过拖拽搭建一个推荐系统了。那项目的大框架既然都已经...

weixin_39777019的博客 650

第17篇:深入解析OpenEuler 24.03系统中的逻辑卷管理(LVM)

OpenEuler 24.03系统中的逻辑卷管理(LVM)提供了灵活的存储管理方案,通过在物理存储与文件系统间构建抽象层实现动态资源分配。

专注于系统运维、数据库、DevOps、虚拟化技术、docker、kubernetes、等云原生技术。 1689

sql进阶:case表达式的两种类型

选择型 简单case表达式 --选择型case CASE WHEN C1 THEN E1 WHEN C2 THEN E2 [ELSE ED] END--选择型 SELECT CASE WHEN A < 1 THEN (SELECT 1 FROM DUAL) WHEN B > 4 THEN (SELECT 2 FROM DUAL) WHEN C = 4

贤时间 688

AD24层次原理图设计避坑指南:如何解决端口连接与自动交叉引用问题

本文深入解析AD24层次原理图设计的核心机制,聚焦端口连接错误、自动交叉引用干扰等常见问题。通过对比自上而下与自下而上设计流程,提供端口类型匹配、命名规范等实用解决方案,并指导如何关闭烦人的红色框线视觉干扰,帮助工程师高效避坑,实现复杂系统的模块化设计。

wdx01234567的博客 615

Agentic-Desktop-Pet:构建本地智能桌面助手的架构与实践

智能体(Agent)作为人工智能领域的重要概念,是指能够感知环境、自主决策并执行任务以实现目标的软件实体。其核心原理在于结合感知、决策与执行模块,通过大语言模型(LLM)等推理引擎处理信息并驱动行动。这种架构的技术价值在于将AI的认知能力与具体的操作系统环境深度融合,从而创造出能主动理解用户上下文、提供个性化服务的智能伙伴。在应用场景上,智能体技术正从云端对话机器人向本地化、场景化的桌面助手演进,旨在解决传统自动化工具缺乏智能、而纯聊天机器人脱离操作环境的问题。本文探讨的Agentic-Desktop-Pe

weixin_27210125的博客 621

Oracle CASE表达式实战:从数据转换到动态逻辑的SQL进阶指南

在数据库查询与数据处理中,条件逻辑处理是核心需求之一,它允许开发者根据特定规则动态转换数据或控制执行流程。其原理在于通过表达式评估实现分支判断,从而将业务逻辑直接嵌入SQL语句,提升数据处理效率与代码可维护性。这一技术对于数据分析、报表生成和业务规则实施具有重要价值,广泛应用于数据清洗、动态分类、条件聚合及自定义排序等场景。本文聚焦Oracle数据库中的CASE表达式,深入解析其两种形式——简单CASE与搜索CASE,并通过实战示例展示如何在SELECT、UPDATE、ORDER BY及聚合函数中灵活运用,

weixin_33585822的博客 231

电子元器件-三极管终终篇:三极管工作原理详解、参数/手册详解、开关应用详解、Ib电流研究、开关应用实例

三极管工作原理与应用摘要 三极管是一种电流控制器件,通过小基极电流控制大集电极电流。其内部结构由高掺杂发射区、薄低掺杂基区和中等掺杂集电区组成,形成NPN或PNP结。三极管有三种工作状态: 截止区:发射结和集电结均反偏,无放大作用 放大区:发射结正偏,集电结反偏,Ic=βIb 饱和区:两结均正偏,Ic不再随Ib增大 作为开关使用时,需确保三极管深度饱和(Vce≈0.2V)。设计要点包括: 基极电阻计算确保Ib足够大 集电极电阻控制Ic 基极加下拉电阻提高抗干扰 NPN管作地开关,PNP管作电源开关 典型应用

qq_60226558的博客 309

《SQL 进阶教程》 case:在 CASE 表达式中使用聚合函数

1.只加入一个社团的学生的社团id select std_id, max(club_id) from student_clubgroup by std_idhaving count(*) =1------------------------------2.加入多个社团的学生的主社团id select std_id,club_id from student_club where main_...

weixin_34343308的博客 502

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

自定义sql_SQL 进阶:使用case when 表达式实现自定义排序

我们经常使用order by 进行排序,如何1,2,3或者A,B,C。那么如何让数据按照自己的想法进行排序呢?下面我们以一个例子来说明吧。原数据我们要实现数据按B,A,D,C的顺序进行排序。思路使用case when 将A,B,C,D转换为2,1,4,3,这样在我们再使用order by实现数据的自定义重排。代码如下:#自定义排序B-A-D-C select * from test1 order ...

weixin_34476847的博客 320

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

06 SQL进阶 -- 复杂查询方法 -- 函数、谓词与CASE 表达式

谓词就是返回值为真值的函数。包括TRUE / FALSE / UNKNOWN。LIKEBETWEENINEXISTSCASE 表达式是函数的一种。是 SQL 中数一数二的重要功能,有必要好好学习一下。CASE 表达式是在区分情况时使用的,这种情况的区分在编程中通常称为(条件)分支。CASE表达式的语法分为简单CASE表达式和搜索CASE表达式两种。由于搜索CASE表达式包含简单CASE表达式的全部功能。本课程将重点介绍搜索CASE表达式。

在科技的浪潮中,我们寻找着创新的火种,在代码的海洋里,我们编织着智慧的网。腾飞开源,就是这样一个由技术精英汇聚而成的博客平台,我们致力于分享在Java、Python、IoT和人工智能等领域的最新研究成果和实战经验。 在腾飞开源的博客上,你会看到紧跟技术前 2155

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

MySQL 中 CASE WHEN 用法详解

MySQL 中 CASE WHEN 用法详解。

博浪沙2015的博客 815

SQL进阶教程(一)——CASE表达式

SQL进阶教程之CASE表达式 在掌握了基础的标准SQL语法后,可做一些简单的SQL练习题加深记忆和巩固基础知识。然而,SQL基础教程仅仅是帮助零基础的同学入门,要想在面试或工作中用好SQL,需进一步学习进阶教程,从而从初级迈向中级。在这个阶段我参考的书仍然是MICK先生所著的==《SQL进阶教程》==,这本书主要以案例为主,通过不同的案例帮助读者快速了解不同情况下SQL语句的使用策略,对于时间比...

weixin_43839651的博客 1567

SQL进阶教程——CASE表达式(第一章)

1. CASE表达式概述 CASE表达式是从SQL-92标准开始被引入的,可能因为他是相对比较新的技术,所以尽管使用起来非常便利,但其真正的价值却并不怎么为人所知。很多人不用它,或者用他的简版函数,例如DECODE(Oracle),IF(MySQL)等。如果能用好它,那么SQL能解决的问题就会更广泛,写法也会更加漂亮。而且,因为CASE表达式是不依赖于具体数据库的技术,所以可以提高SQL代码的可移...

qq_28285403的博客 875

【SQL进阶教程】第一章 case表达式

本系列基于《SQL进阶教程》(如下图)学习,实现了书中代码及练习题代码。 【知识点1】case表达式概述 Case表达式有简单case表达式和搜索case表达式 【知识点2】将已有编号方式转换为新的方式并统计 【知识点2】将已有编号方式转换为新的方式并统计 (1)统计四国、九州和其他的人口数 正确答案一: ...

zhangzhangchenchu的博客 869

SQL进阶教程—CASE表达式

所有的文件在SQL进阶教程 (ituring.com.cn),随书下载那里 需求:现在我需要将1作为男生,2作为女生进行查询,其他人作为中间人,查出来表名为性别 同样的需求,出来结果相同 需求:现在是找出20-26之间的年轻人 注意 使用case表达式的时候,要注意条件的排他性 比如执行下面的这一段sql语句 我们知道条件1包含条件2,那么执行结果中条件2的判断会不可达,即条件2语句不会执行需求:对于这个表格,我们要统计各个地区的人口数 需求:现在需要查询每一个县对应级别的数量 注意:我们在这里引用的

qq_58510930的博客 882

SQL进阶之CASE表达式

SQL进阶之CASE表达式CASE 表达式越前须知(雾)CASE表达式概述具体应用转化已有编号方式并统计A. 汇总原有编号B. 行列转换用CHECK约束定义多个列的条件关系UPDATE子句的条件分支表间匹配聚合函数比较不同列,取最大值 CASE 表达式 越前须知(雾) 本系列参考《SQL进阶教程》1,DBMS选用MySQL。 本系列不涉及数据库安装与基础语句,对初学者存在一定门槛;基础知识建议阅读《SQL必知必会(第四版)》与《SQL基础教程(第二版)》。 CASE表达式概述 基本写法 -- 简单表

m0_46132995的博客 350

SQL进阶之CASE表达式的使用

CASE表达式是从SQL-92标准开始被引入的。相对于Oracle中的DECODE函数和MySQL中的IF函数,CASE表达式不依赖于具体的数据库技术,可以提高SQL代码的可移植性,所以强烈建议大家学会使用CASE表达式。

ZhangBaiWanA的博客 239

SQL—— CASE 表达式

获取只加入一个社团的学生的社团 ID 和 加入多个社团的学生的主社团 ID。某公司规定“女性员工的工资必须在 20 万日元以下。​ 注意对比 逻辑与 P ^ Q。

FFTang的博客 201

SQL进阶笔记

SQL进阶笔记

weixin_45049852的博客 1560

case when嵌套子查询_case表达式用法总结

最近在磕《SQL进阶教程》第一章就总结了case表达式,有些用法之前练习的时候有刷到,但是没有深入的了解,这次刚好把这本书的提到的,结合做过的习题总结一下。一、将已有编号方式转换为新的方式并统计将数据按照某个类别进行分类统计的时候可以利用case表达式eg:如果想要完成如下的转换利用case表达式即可,具体的代码如下最终结果为二、用一条SQL语句进行不同条件统计case 表达式能够根据不同条件进行...

weixin_39981632的博客 6948
上一篇: Spring:多数据源配置多个事务管理器DEMO
下一篇: JDBC:随机查询DEMO
博风
博客等级 码龄16年 442粉丝 357原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值