mysql case then效率快_详解Mysql case then使用
表的创建
create table `lee` (
`id` int(10) not null auto_increment,
`name` char(20) default null,
`birthday` datetime default null,
primary key (`id`)) engine=innodb default charset=utf8
数据插入:
insert into lee(name,birthday) values ('sam','1990-01-01');
insert into lee(name,birthday) values ('lee','1980-01-01');
insert into lee(name,birthday) values ('john','1985-01-01');
第一种用法:
select name,
case when birthday < '1981' then 'old'
when birthday > '1988' then 'yong'
else 'ok' end yorn
from lee
第二种用法:
select name, case name
when 'sam' then 'yong'
when 'lee' then 'handsome'
else 'good' end as oldname
from lee
第三种:当然了,case when 语句还可以复合
select name, birthday,
case
when birthday > '1983' then 'yong'
when name='lee' then 'handsome'
else 'just so so' end
from lee;
在这里用sql语句进行日期比较的话,需要对年加引号,要不然可能结果和预期的结果不同,
当然也可以用year函数来实现
select name,
case when year(birthday) > 1988 then 'yong'
when year(birthday) < 1980 then 'old'
else 'ok' end
from lee;
==========================================================
create table penalties
(
paymentno integer not null,
payment_date date not null,
amount decimal(7,2) not null,
primary key(paymentno)
)
insert into penalties values(1,'2008-01-01',3.45);
insert into penalties values(2,'2009-01-01',50.45);
insert into penalties values(3,'2008-07-01',80.45);
第一题:对罚款登记分为三类,第一类low,包括大于0小于等于40的罚款,第二类moderate大于40到80之间的罚款,第三类high包含所有大于80的罚款
select payment_date, amount,
case
when amount >= 0 and amount < 40 then 'low'
when amount >=40 and amount < 80 then 'moderate'
when amount >=80 then 'high'
else 'null' end
from penalties
第二题:统计出属于low的罚款编号
select * from
( select paymentno, amount,
case
when amount >= 0 and amount < 40 then 'low'
when amount >=40 and amount < 80 then 'moderate'
when amount >=80 then 'high'
else 'incorrect' end lvl
from penalties) as p
where p.lvl = 'low'
ps:mysql,case when,case多个字段
select distinct a.patientid,a.patientcode,a.patientsex,a.mobileno,a.homephoneno,a.userage,a.patientname,a.patientidcard, date_format(a.registdate,'%y-%m-%d') as registdate,
case when b.usedstarttime is not null and b.usedendtime is null then '1'
when b.usedstarttime is not null and b.usedendtime is not null then '2'
end as 'usedstate'
from mets_v_patient_baseinfo a
left join mets_devices_used_history b on a.patientid = b.patientid
where (select ifnull(isdeleted,0) from userpublic_info where userid = a.patientid ) = 0
and 1=1
order by patientid desc limit 0,15
希望与广大网友互动??
点此进行留言吧!
mysql case then效率快_详解Mysql case then使用相关推荐
- mysql影响行数解析_详解MySQL的数据行和行溢出机制
一.行 有哪些格式? 你可以像下面这样看一下你的mysql行格式设置. 其实mysql的数据行有两种格式,一种就是图中的 compact格式,还有一种是redundant格式. compact是一种紧 ...
- mysql如何查看事务日记_详解 Mysql 事务和Mysql 日志
事务特性 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节. 2.一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破 ...
- mysql分区表truncate分区数据_详解MySQL分区表
前言: 分区是一种表的设计模式,通俗地讲表分区是将一大表,根据条件分割成若干个小表.但是对于应用程序来讲,分区的表和没有分区的表是一样的.换句话来讲,分区对于应用是透明的,只是数据库对于数据的重新整理 ...
- mysql如何进行压测_详解MySQL如何按表创建千万级的压测数据
有时我们要对系统做压测,或者数据库压力测试,这时候需要对某些表插入几百万或者上千万数据,下面介绍下怎么利用MySQL循环和存储过程对特定表的创建千万行数据. 1. 准备测试表 CREATE TABLE ...
- mysql 多表 查询慢_详解Mysql多表联合查询效率分析及优化
1. 多表连接类型1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用',' 如: SELECT * FROM table1 CROSS JOI ...
- mysql内连接部门平均值_详解MySql基本查询、连接查询、子查询、正则表达查询_MySQL...
查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,可以获得不同的数据.MySQL中是使用SEL ...
- mysql表分区数量限制_详解MySQL分区表的局限和限制的代码实例
本文对Mysql分区表的局限性做了一些总结,因为个人能力以及测试环境的 原因,有可能有错误的地方,还请大家看到能及时指出,当然有兴趣的朋友可以去官方网站查阅. 禁止构建 分区表达式不支持以下几种构建: ...
- mysql查询男生基本情况_详解MySql基本查询、连接查询、子查询、正则表达查询...
select * from STUDENT; 2.2.按条件查询 (1) 比较运算符 > , < ,= , != (< >),>= , <= select * fr ...
- mysql 显示前三项_详解MySQL三项实用开发知识
其实项目应用的瓶颈还是在db端,在只有少量数据及极少并发的情况下,并不需要多少的技巧就可以得到我们想要的结果,但是当数据量达到一定量级的时 候,程序的每一个细节,数据库的设计都会影响到系统的性能.这里 ...
最新文章
- 使用DistilBERT 蒸馏类 BERT 模型的代码实现
- bootanimation文件名_Android开机logo制作
- 如何利用弹幕,打造出非凡的观看体验
- 4.64Tomcat的日志
- java setsize_Java Vector setSize()方法与示例
- 【独家】孙茂松:从机器翻译到古诗生成
- vue.js v-bind
- 咸菜可以吃吗,对健康有害吗?
- Objective-C中的位运算符用法
- Ubuntu16.04 安装Caffe教程
- #第七章 基于太阳系数据的股市拟合数学模型的理论应用7.1倾斜的时空
- 软件收集-建筑工程资料软件
- 【HW2020漏洞回顾】深信服EDR两大漏洞(转载)
- ios UIImageView 部分圆角(加上 borderWidth、borderColor 效果修复)
- 研究生计算机专业笔记本配置要求,大学生买什么电脑好?电脑配置及选择方法全解析...
- 关于裁剪CSV文件中的各类数据的代码
- java程序员常用的快捷键
- 支持向量机(SVM)——线性支持向量机
- RESIZE DATAFILE与ORA-03297
- php phantomj,射手网复活攻略:用百度快照和phantomjs让射手网起死回生
热门文章
- android之普通蓝牙通信
- Abseil之New Join API
- Linux安装nextcloud教程,WSL下安装nextcloud
- inlfuxdb版本_InfluxDB安装及配置
- python爬虫视频课程推荐_Python 爬虫实战案例(推荐小白研究)
- 终面后拿offer几率_20届网易校招失败后的经验(现已拿offer)
- Android Studio如何去除界面默认标题栏
- geitee仓库项目拉到(克隆到)本地
- 开机时设置linux 内核参数 mem,Linux内核开机保留大块内存的方法总结
- 2017年杭州java面试题_2017年Java面试题整理