Mysql-case when 使用

作者: 泥称已被栈用 | 来源:发表于2018-12-28 22:36 被阅读5次

当我们在查询数据的时候,我们可能希望对于一些数字的枚举值展示出其实际的文案值
比如:性别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;
简单case查询结果.png

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;
搜索函数查询结果.png

相关文章

  • Mysql-case when 使用

    当我们在查询数据的时候,我们可能希望对于一些数字的枚举值展示出其实际的文案值比如:性别1我们想显示男,2我们想显示...

  • Kotlin入门篇(四),如何使用when语句

    when语句的使用 Kotlin中when语句的使用,类似与Java中switch使用,如下,演示下when语句的...

  • case when 使用

    如下一个sql拼接片段 case_parent_platform =" case when from_platfo...

  • 用SQL构建数据透视表

    主要内容:CASE WHEN和开窗函数 1.简单使用group by 2.使用CASE WHEN和GROUP BY...

  • ansible之fail+when

    fail: 案列: when: 案例: fail+when: 案例: 个人案列role里面的使用:

  • Oracle之--CASE WHEN语句

    使用CASE WHEN语句他统计各个年龄段人数 遇到需要整合的sql是使用CASE WHEN还是UNION呢? 执...

  • Kotlin 学习三

    一: Kotlin的when 使用 ① 你可以像switch那样使用when,想象你有一个视图,基于视图可显示性显...

  • ansible逻辑控制语句

    条件判断语句 when when 的基本用法when 是条件判断语句,类似编程语言的if 与include一起使用...

  • MySQL的CASE WHEN用法

    在数据分析时经常要用到行转列,此时如果使用case when就会方便很多,case when的熟练使用程度,可以说...

  • 记一次SpringBoot 单测踩坑记录

    单元测试踩坑记录: 使用Mockito.when() 时mock总是不生效 (1)问题when(commonSer...

网友评论

    本文标题:Mysql-case when 使用

    本文链接:https://www.haomeiwen.com/subject/dqcylqtx.html