表的创建

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'

mysql的case then语句_mysql case then使用相关推荐

  1. mysql case快捷方法_MySQL case when使用方法实例解析

    首先我们创建数据库表: CREATE TABLE `t_demo` ( `id` int(32) NOT NULL, `name` varchar(255) DEFAULT NULL, `age` i ...

  2. case zhen语句_switch case语句,switch case用法详解

    switch 是"开关"的意思,它也是一种"选择"语句,但它的用法非常简单.switch 是多分支选择语句.说得通俗点,多分支就是多个 if. 从功能上说,sw ...

  3. mysql自动提交 dcl语句_MySQL基础:DCL语句总结

    SQL语言大致分为DCL.DDL.DML三种,本文主要介绍MySQL 5.7版本DCL语句. 概述 DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可 ...

  4. mysql数据的更新语句_MySQL数据库之UPDATE更新语句精解

    一.INSERT和REPLACE INSERT和REPLACE语句的功能都是向表中插入新的数据.这两条语句的语法类似.它们的主要区别是如何处理重复的数据. 1. INSERT的一般用法 MySQL中的 ...

  5. mysql给权限的语句_MySQL授予权限(Grant语句)

    在本教程中,您将学习如何使用MySQL中的GRANT语句向MySQL用户授予权限. MySQL GRANT语句简介 后,用户没有任何权限.如要向用户帐户授予权限,请使用GRANT语句. 下面说明GRA ...

  6. MySQL —— if分支判断语句和case when判断语句

    一.if分支判断语句 基本语法 if在Mysql中有两种基本用法 1. 用在select查询当中,当做一种条件来进行判断 基本语法:if(条件,为真结果,为假结果) 2.用在复杂的语句块中(函数/存储 ...

  7. mysql case函数吗_mySQL case函数

    语法 CASE 字段名 WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 ... [ ELSE 结果N ] END 条件可以是一个数值或公式.ELSE子句不是必须的. 还有一种写 ...

  8. MySQL中定义fk语句_MySQL基础篇/第3篇:MySQL基本操作语句.md · qwqoo/MySQL-Review - Gitee.com...

    ### 第3篇:MySQL基本操作语句 - MySQL基础操作 #### 排序检索数据 - 之前的数据没有进行排序,其是按照默认在数据表中的数据返回的 - SELECT语句的ORDER BY 子句进行 ...

  9. mysql分片建表语句_Mysql元数据如何生成Hive建表语句注释脚本详解

    前言 本文主要给大家介绍了关于Mysql元数据生成Hive建表语句注释脚本的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 最近在将数据从Mysql 等其他关系型数据库 抽取 ...

最新文章

  1. 2020年史上最全PyTorch资源合集,Github 标星1w+
  2. BCH大涨带领币市小幅走高 个别币种走势逐步分化
  3. 甚长基线干涉测量技术(VLBI)基础
  4. python之路day14--列表生成式、生成器generator、生成器并行
  5. AndroidStuido编译release版本apk(非签名apk)
  6. 线程知识-ThreadLocal使用详解
  7. 如何创建Kafka客户端:Avro Producer和Consumer Client
  8. 个人遇到局域网不能访问解决分享
  9. 【Unity3d】使GUI适应屏幕分辨率
  10. 忘记VSS admin密码了
  11. SVD在推荐系统中的应用【推荐】
  12. vba动态二维数组_VBA学习笔记19:数组1
  13. 【渝粤教育】电大中专混凝土结构_1作业 题库
  14. 高速PCB设计之阻焊层和助焊层的检查
  15. 叶俊—中国的安东尼·罗宾
  16. 上海商业车险进平台验收通过
  17. 计算房贷利率月供相关信息(等额本息)
  18. 面试时候被问到为什么离职 离职原因 该如何回答?
  19. 三星android系统应用,三星Android系统文件夹全解
  20. 简洁的微信Markdown编辑器

热门文章

  1. python生成正态分布矩阵_使用Numpy生成正态分布数据
  2. 二叉排序树的判别(耿8.6)
  3. 测试人生 | 从小团队的业务到独角兽的测开,涨薪超过60%,90后小哥哥凤凰涅槃了
  4. IntelliJ IDEA开发最佳配置(已更新至2022版)
  5. 2012春季高考计算机试题,春季高考历年真题-2012年天津市季高考计算机试卷.doc...
  6. Vue 表格循环滚动,鼠标移入暂停,移出继续滚动
  7. autohotkey-lab 2011-01-13 12:18:15
  8. ultraiso 9.6 注册码
  9. PyQt实现QSlider滑块鼠标点击事件
  10. http模块中创建最基本的web服务器,以及req请求对象和res相应对象