Mysql-case when 使用!
Mysql-case when 使用!
当我们在查询数据的时候,我们可能希望对于一些数字的枚举值展示出其实际的文案值
比如:性别1我们想显示男,2我们想显示女。
一、case 使用场景
1.1 简单函数
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list] ...
[ELSE statement_list]
END CASE
1.2 case搜索函数
CASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list]
END CASE
二、使用示例
2.1 简单case函数
case `gender`
when 1 then '男'
when 2 then '女'
else '未知'
end
2.2 case搜索函数
case
when gender = 1 then '男'
when gender = 2 then '女'
else '未知'
end
准备数据如下
create table if not exists test_user(
`id` bigint(20) not null AUTO_INCREMENT comment '主键自增ID',
`name` varchar(64) not null comment '姓名',
`gender` integer not null comment '性别,1: 男, 2: 女',
`country_code` integer not null comment '所属国家CODE',
primary key (`id`)
) charset = 'utf8mb4' comment '测试表';
一张参照表
国家
country_code
中国 | 100 |
美国 | 110 |
法国 | 120 |
雪国 | 其他 |
INSERT INTO `test_user` (`name`, `gender`, `country_code`)
VALUES
('清风', 1, 100),
('玄武', 2, 100),
('Kobe', 1, 110),
('John Snow', 1, 200),
('Peut-être', 0, 120);
三、实战示例
3.1 使用case简单函数
select `id`, `name`, `gender`,
(case `gender`
when 1 then '男'
when 2 then '女'
else '未知'
end) as '性别',
`country_code`
from test_user;
3.2 使用case搜索函数查询
select id, `name`, gender,
(case
when gender = 1 then '男'
when gender = 2 then '女'
else '未知'
end) as '性别',
country_code,
(case
when country_code = 100 then '中国'
when country_code = 110 then '英国'
when country_code = 120 then '法国'
else '雪国'
end) as '国籍'
from test_user;
案例4,
公司开发中遇见的一个问题,卡的种类的判断,如果卡的id中包含“CREDIT”则为信用卡,包含“DIBIT”则为借记卡,于是想到了使用case when的方式进行判断,由于有涉及到了包含匹配的问题,like %是首选,到网上搜了一下并经过实验证明case when like % 一块使用的正确性。
select
fcb.id as id,
fcb.status,
c.CUSTOMERNUMBER as customernumber,
c.FULLNAME as customerfullname,
b.FULLNAME as bankname,
f.DESCRIPTION as frpname,
case when b.id like '%CREDIT' then '信用卡' when b.id like '%DEBIT' then '借记卡' end as banktype
from FastPayCustomerBranch fcb ,frp f ,bank b ,customer c
where fcb.FRP_ID=f.ID and fcb.BANK_ID= b.ID and fcb.CUSTOMER_ID=c.id
规律如下:
Select
when column1 like '%包含内容%' then '结果1'
when column1 like '%包含内容%' then '结果2'
else '结果三' end as otherName,
from table
where 条件
如果大家有其他的方法,或者想要知道哪方面的办公技巧,下方评论哦~
学习资料见知识星球。
以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。
快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利!
更多技巧, www.excelbook.cn
欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;
1、价值上万元的专业的PPT报告模板。
2、专业案例分析和解读笔记。
3、实用的Excel、Word、PPT技巧。
4、VIP讨论群,共享资源。
5、优惠的会员商品。
6、一次付费只需99元,即可下载本站文章涉及的文件和软件。
共有 0 条评论