千家信息网

sql中如何使用case when

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍了sql中如何使用case when,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。sql中case when的用法ca
千家信息网最后更新 2026年10月31日sql中如何使用case when

这篇文章主要介绍了sql中如何使用case when,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

sql中case when的用法

case具有两种格式。简单case函数和case搜索函数。

1、简单case函数

case sex  when '1' then '男'  when '2' then '女'  else '其他' end

2、case搜索函数

case when sex = '1' then '男'     when sex = '2' then '女'     else '其他' end

这两种方式,可以实现相同的功能。简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式。(免费学习视频教程推荐:mysql视频教程)

还有一个需要注重的问题,case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略。

比如说,下面这段sql,你永远无法得到"第二类"这个结果

case when col_1 in ('a','b') then '第一类'     when col_1 in ('a') then '第二类'     else '其他' end

实例演示:

首先创建一张users表,其中包含id,name,sex三个字段,表内容如下:

select * from users  ID        NAME                 SEX---------- -------------------- ----------1          张一                 2          张二                 13         张三                 4          张四                5          张五                 26          张六                 17          张七                 28          张八                 1

1、上表结果中的"sex"是用代码表示的,希望将代码用中文表示。可在语句中使用case语句:

select u.id,u.name,u.sex,   (case u.sex      when 1 then '男'      when 2 then '女'      else '空的'      end     )性别  from users u;                                    ID NAME                        SEX 性别--------------------------------------- -------------------- ---------- ------                                      1 张一                            空的                                      2 张二                          1 男                                      3 张三                            空的                                      4 张四                            空的                                      5 张五                          2 女                                      6 张六                          1 男                                      7 张七                          2 女                                      8 张八                          1 男

2、如果不希望列表中出现"sex"列,语句如下:

select u.id,u.name,    (case u.sex      when 1 then '男'      when 2 then '女'      else '空的'      end    )性别  from users u;                                      ID NAME                 性别--------------------------------------- -------------------- ------                                      1 张一                 空的                                      2 张二                 男                                      3 张三                 空的                                      4 张四                 空的                                      5 张五                 女                                      6 张六                 男                                      7 张七                 女                                      8 张八                 男

3、将sum与case结合使用,可以实现分段统计。

如果现在希望将上表中各种性别的人数进行统计,sql语句如下:

select    sum(case u.sex when 1 then 1 else 0 end)男性,    sum(case u.sex when 2 then 1 else 0 end)女性,    sum(case when u.sex <>1 and u.sex<>2 then 1 else 0 end)性别为空  from users u;         男性         女性       性别为空---------- ---------- ----------         3          2          0 --------------------------------------------------------------------------------SQL> select    count(case when u.sex=1 then 1 end)男性,    count(case when u.sex=2 then 1 end)女,    count(case when u.sex <>1 and u.sex<>2 then 1 end)性别为空  from users u;         男性          女       性别为空---------- ---------- ----------         3          2          0

感谢你能够认真阅读完这篇文章,希望小编分享的"sql中如何使用case when"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

性别 函数 男性 篇文章 语句 张三 搜索 上表 代码 功能 女性 教程 结果 视频 学习 统计 相同 简洁 三个 人数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网和科技技术 科技互联网龙头 深圳艾佳互联网科技 金融科技和互联网金融 华中科技有哪些互联网大佬 西藏七维空间互联网科技有限公司 宁夏众和广鑫互联网科技有限公司 荆州市昕露互联网络科技有限公司 互联网科技革命什么开始 互联网科技大奖都有哪些公司 允成互联网科技有限公司融资 玉溪新华互联网科技好不好 怎样加入科技互联网 银行科技岗属于互联网吗 互联网营销推广黑科技 上海同邻互联网科技有限公司规模 互联网高科技行业有哪些企业 互联网科技机房 广州三三互联网科技有限公司 东风日产互联网科技公司叫什么 广州淘业互联网络科技 科技互联网企业 重生之互联网科技帝国 互联网最新的科技 百单互联网科技有限公司 上海卓越科技 互联网 深圳国际航运科技和互联网 宁夏科技产业互联网案例 天津腾达互联网科技有限公司 科技互联网海报
0