mysql的case then else end语句的使用,来显示多种结果之一
来源:互联网 发布:c语言 登录系统 编辑:程序博客网 时间:2024/05/29 14:31
表的创建
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 YORNFROM lee第二种用法:
SELECT NAME, CASE name WHEN 'sam' THEN 'yong' WHEN 'lee' THEN 'handsome' ELSE 'good' END as oldnameFROM lee
第三种:当然了,case when 语句还可以复合
select name, birthday, casewhen birthday > '1983' then 'yong' when name='lee' then 'handsome' else 'just so so' endfrom lee;在这里用sql语句进行日期比较的话,需要对年加引号,要不然可能结果和预期的结果不同,
当然也可以用year函数来实现
select name, case when year(birthday) > 1988 then 'yong' when year(birthday) < 1980 then 'old' else 'ok' ENDfrom 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, casewhen amount >= 0 AND amount < 40 then 'low' when amount >=40 AND amount < 80 then 'moderate' when amount >=80 then 'high'else 'null' ENDFROM penalties第二题:统计出属于low的罚款编号
select * from( select paymentno, amount, casewhen 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 pwhere 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
0 0
- mysql的case then else end语句的使用,来显示多种结果之一
- case when then else end 的使用
- SQL的case when then else end语句的用法
- mysql数据库中case...when...then...end语句的使用
- SQL的Case When ... Then ... Else ... End... 语句
- mysql的case when then else end语法的例子。
- case,when,then,else,end的mysql语句用法与说明
- MySql 中 case when then else end 条件控制语句的用法
- MySql 中 case when then else end 的用法
- MySql 中 case when then else end 的用法
- MySql 中 case when then else end 的用法
- MySql 中 case when then else end 的用法
- MySql-中-case-when-then-else-end-的用法
- MySql 中 case when then else end 的用法
- case when then else end的用法
- oracle如何根据一个字段的结果判断另外一个字段?(CASE WHEN THEN ELSE END语句)
- Mysql 数据库case when then else end语句用法
- Sql语句-case when then else end
- BZOJ3295动态逆序对
- 如何使用 CGroup 管理系统资源
- ORM 框架
- eventbus
- 前端面试题收集
- mysql的case then else end语句的使用,来显示多种结果之一
- ubuntu编译vim8.0
- Iterator的使用
- 每天一个linux命令(48):watch命令
- caffe的python接口学习(10):微调 & 直接训练
- FTC起诉D-Link销售不安全的路由器和摄像头
- css调整表格在屏幕上的位置
- android 获取系统底层信息
- Proc *C/C++入门--数组变量