当前位置: 首页 > news >正文

SQL进阶:CASE表达式

目录

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

建表语句(MySQL8):

录入数据: 

*按性别统计SQL

输出结果(行列转换)

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

建表语句(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 
输出结果:

http://www.lqws.cn/news/524233.html

相关文章:

  • 数组基础知识
  • IBMS 智能化系统:让建筑提前进入 AIoT 智慧纪元​
  • Linux基本指令篇 —— mv指令
  • 时序数据库 TDengine 助力华锐 D5 平台实现“三连降”:查询快了,机器少了,成本也低了
  • 以太坊执行客户端和共识客户端各自的作用及意义
  • java 对接ETH(以太坊) 交易相关资料
  • 区间求最值问题高效解决方法
  • Linux下使用docker nginx部署vue前端项目工程
  • vue2 使用el-form中el-form-item单独绑定rules不生效问题
  • IoT/HCIP实验-5/基于NB-IoT的智慧农业实验(平台侧开发+端侧编码+基础调试分析)
  • LOOP如何让长周期交互LLM代理在复杂环境中实现突破?
  • 正则表达式匹配实现
  • Boosting:从理论到实践——集成学习中的偏差征服者
  • Prompt:面向目标的提示词
  • WeakAuras Lua Script [ICC BOSS 12 - The Lich King]
  • Objective-C面向对象编程:类、对象、方法详解(保姆级教程)
  • 自动驾驶数据特征提取实战:用Python打开智能驾驶的新视角
  • 深入理解残差网络(ResNet):原理与PyTorch实现
  • Mysql数据库操作大全万字详解
  • 【Redis】Redis的下载安装和配置
  • 检查StringBuilder是否包含字符串
  • ARM内核之CMSIS
  • 【机器学习】非参数贝叶斯回归方法 GPR
  • ipfs在windows下载和安装
  • JSON框架转化isSuccess()为sucess字段
  • C++(智能指针)
  • Liunx操作系统笔记2
  • linux-修改文件命令(补充)
  • IT运维效率提升: 当IT监控遇上3D可视化
  • 三步实现B站缓存视频转MP4格式