MySQL case when 用法

 


MySQL case when 用法

最近有个需求,需要对返回结果判断并进行结果映射,使用到了 case when 语句。

1、语法

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
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END CASE

2、示例

2.1、简单函数示例

这里以查询 user 的 sex 字段为例, 当 sex = 'f' 时结果映射为 '女', 反之映射为 '男':

select u.id, u.name, 
case u.sex when 'f' then '女' else '男' end as sex
from user u
where u.id <= 3

结果如下:

image-20211228114251689

可以看到 sex 字段的结果变为了 '男'、'女'。

2.2、搜索函数示例

同样查询 user 的 sex 字段,注意比较这两种写法的区别

select u.id, u.name, 
case when u.sex = 'f' then '女' else '男' end as sex
from user u
where u.id <= 3

when后面是一个逻辑表达式,若表达式为真,则 sex 的结果为 '女',若表达式为假,则 sex 的结果为 '男',

执行查询可以得到上面示例一样的结果。

3、两种语法选择哪种?

一般情况下选择搜索函数,即第二种,能够面对更加复杂的查询。

现在要查询 user 的 age 字段,即客户的年龄,不同的 age 对应的年龄段称呼不同:

select u.id, u.name, 
case when u.age <= 18 then '未成年'
when u.age between 19 and 40 then '青年'
else '中年' end as '年龄段'
from user u
where u.id <= 3

第一种语法无法满足这样复杂的查询,故学习使用搜索函数便可以了。

posted @   MyDistance  阅读(840)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2020-12-28 SQL exists 基本用法
点击右上角即可分享
微信分享提示

目录导航

MySQL case when 用法
1、语法
1.1、简单函数
1.2、搜索函数
2、示例
2.1、简单函数示例
2.2、搜索函数示例
3、两种语法选择哪种?