MySQL学习笔记:case when
一、MySQL case when的三种用法:
1.case 字段 when, 字段的具体值;
- select a.*,
- case sex
- when '1' then '男'
- else '女'
- end as '性别'
- FROM table_sex a;
2.case when 字段,可对字段进行取值范围设置;
- SELECT a.*,
- CASE
- WHEN a.age BETWEEN 0 and 20 THEN '青年'
- WHEN a.age BETWEEN 20 and 40 THEN '中年'
- ELSE '非人类'
- END AS '描述'
- FROM table_c a;
3.case when 字段1,字段2,可对多个字段进行取值映射;
- SELECT a.*,
- CASE
- WHEN a.age BETWEEN 20 and 80 THEN '青年'
- WHEN a.name ='流浪' THEN '帅气'
- END AS '描述'
- FROM table_cc a
注:如果两个条件都针对一个字段的话,会显示第一个when的值。
二、具体解释:
- SELECT
- case -------------如果
- when sex='' then '男' -------------sex='1',则返回值'男'
- when sex='' then '女' -------------sex='2',则返回值'女'
- else 0 -------------其他的返回'其他’
- end -------------结束
- from sys_user --------整体理解: 在sys_user表中如果sex='1',则返回值'男'如果sex='2',则返回值'女' 否则返回'其他’
三、例子
有员工表如下:
- empinfo (
- Fempno varchar2(10) not null pk,
- Fempname varchar2(20) not null,
- Fage number not null,
- Fsalary number not null
- );
假如数据量很大约1000万条;
写一个你认为最高效的SQL,用一个SQL计算以下四种人:
- fsalary>9999 and fage > 35
- fsalary>9999 and fage < 35
- fsalary <9999 and fage > 35
- fsalary <9999 and fage < 35
每种员工的数量
- SELECT
- SUM(CASE WHEN fsalary > 9999 AND fage > 35 THEN 1 ELSE 0 END)
- AS "fsalary>9999_fage>35",
- SUM(CASE WHEN fsalary > 9999 AND fage < 35 THEN 1 ELSE 0 END)
- AS "fsalary>9999_fage<35",
- SUM(CASE WHEN fsalary < 9999 AND fage > 35 THEN 1 ELSE 0 END)
- AS "fsalary<9999_fage>35",
- SUM(CASE WHEN fsalary < 9999 AND fage < 35 THEN 1 ELSE 0 END)
- AS "fsalary<9999_fage<35"
- FROM empinfo;
END 2018-05-16 14:30:48
MySQL学习笔记:case when的更多相关文章
- 数据库MySQL学习笔记高级篇
数据库MySQL学习笔记高级篇 写在前面 学习链接:数据库 MySQL 视频教程全集 1. mysql的架构介绍 mysql简介 概述 高级Mysql 完整的mysql优化需要很深的功底,大公司甚至有 ...
- 一千行MySQL学习笔记 (转)
出处: 一千行MySQL学习笔记 /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权 ...
- mysql basic operation,mysql总结,对mysql经常使用语句的详细总结,MySQL学习笔记
mysql> select * from wifi_data where dev_id like "0023-AABBCCCCBBAA" ; 1.显示数据库列表.show d ...
- Mysql学习笔记(三)对表数据的增删改查。
正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...
- MySQL学习笔记一
MySQL 学习笔记 一 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系 ...
- Mysql学习笔记(二)数据类型 补充
原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...
- Mysql学习笔记(一)数据类型
原文:Mysql学习笔记(一)数据类型 学习内容: Mysql基本数据类型. 1.数字类型.. i.整型 Mysql数据类型 含义(有符号) tinyint(m ...
- 初识mysql学习笔记
使用VMVirtualBox导入Ubuntu后,可以通过sudo apt-get install mysql-server命令下载mysql. 在学习过程中,我遇到了连接不上Xshell的问题.最终在 ...
- MySQL学习笔记-锁相关话题
在事务相关话题中,已经提到事务隔离性依靠锁机制实现的.在本篇中围绕着InnoDB与MyISAM锁机制的不同展开,进而描述锁的实现方式,多种锁的概念,以及死锁产生的原因. Mysql常用存储引擎的锁 ...
- MySQL学习笔记-事务相关话题
事务机制 事务(Transaction)是数据库区别于文件系统的重要特性之一.事务会把数据库从一种一致状态转换为另一个种一致状态.在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都 ...
随机推荐
- R语言 神经网络算法
人工神经网络(ANN),简称神经网络,是一种模仿生物神经网络的结构和功能的数学模型或计算模型.神经网络由大量的人工神经元联结进行计算.大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自 ...
- linux常见故障一:linux 文件系统变只读
1. 重启系统看是否可以自动修复. 2. 使用fsck -y /dev/sda1 进行自动修复.(用”-y”选项来执行该命令对硬盘进行检查和修复) 添加参数:fsck -y -C -t ext3 ...
- linux 命令操作记录
1.查找名为 migrations 的文件夹/文件,并删除 find . -name "migrations" -type d #查找当前目录下文件夹名为 migrations 的 ...
- html5页面头部
<base href="/bulid/"/> <meta charset="UTF-8"/> <meta http-equiv=& ...
- centos7 install python3.7 with problem and how to fix it.
问题如下: configure: error: no acceptable C compiler found in $PATH 缺少gcc zipimport.ZipImportError: can’ ...
- codevs 3327 选择数字
3327 选择数字 时间限制: 1 s 空间限制: 256000 KB 题目描述 Description 给定一行n个非负整数a[1]..a[n].现在你可以选择其中若干个数,但不能有超过k个连续 ...
- ZeroMQ API(三) 消息
1.初始化消息 1.1 zmq_msg_init(3) 1.1.1 名称 zmq_msg_init - 初始化空的ZMQ消息 1.1.2 概要 int zmq_msg_init(zmq_msg_t * ...
- Machine Learning Trick of the Day (2): Gaussian Integral Trick
Machine Learning Trick of the Day (2): Gaussian Integral Trick Today's trick, the Gaussian integral ...
- .Net多线程之线程安全
ConcurrentDictionary是.net4.0推出的一套线程安全集合里的其中一个,和它一起被发行的还有ConcurrentStack,ConcurrentQueue等类型,它们的单线程版本( ...
- Elasticsearch技术解析与实战(四)shard&replica机制
序言 shard&replica机制 1.index包含多个shard 2.每个shard都是一个最小工作单元,承载部分数据,lucene实例,完整的建立索引和处理请求的能力 3.增减节点时, ...