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
结果如下:
可以看到 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
第一种语法无法满足这样复杂的查询,故学习使用搜索函数便可以了。
自我控制是最强者的本能-萧伯纳
分类:
MySQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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 基本用法