case 函数语法与使用
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,case 函数是聚合函数的一种,为统计函数。case表达式:CASE selector WHEN value1 THEN action1; WHEN value2 THEN a
千家信息网最后更新 2026年11月01日case 函数语法与使用
case 函数是聚合函数的一种,为统计函数。
case表达式:
CASE selector WHEN value1 THEN action1; WHEN value2 THEN action2; WHEN value3 THEN action3
一、CASE WHEN 表达式有两种形式
(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 WHEN 应用
学生性别统计student表:
------------查询表中所有的性别
select ID, (case sex when '1' then '男' when '2' then '女' ELSE 'null' END) AS '性别', province as '省份' from `student` ORDER BY `ID` ASC ;
查询结果如下:

-------------查询江苏省与浙江省男生与女生个数分别是多少。

第一种计算方法:以省份区分
select province AS '江苏省', COUNT(case sex when '男' THEN '男' ELSE null END ) AS '男生', COUNT(case sex when '女' THEN '女' ELSE null END ) AS '女生' from student where `province` ='江苏'UNIONselect province AS '江苏省', COUNT(case sex when '男' THEN '男' ELSE null END ) AS '男生', COUNT(case sex when '女' THEN '女' ELSE null END ) AS '女生' from `student` where `province` ='浙江'
查询结果如下:
第二种计算:以性别区分
select sex, COUNT(case province when '江苏' THEN '江苏' ELSE null END ) AS '江苏省', COUNT(case province when '浙江' THEN '浙江' ELSE null END ) AS '浙江省' from `student` group by `sex` ;
查询结果如下:
注意:
COUNT(case province when '江苏' THEN '江苏' ELSE null END ) AS '江苏省',
可以简写成:
COUNT( case province when '江苏' THEN '江苏' END ) AS '江苏省'
----------查询各省份的男女数量
select province , sex, COUNT(*) AS '总数' from student GROUP BY province ,sex;
查询结果如下:
----------只统计了浙江省的男女数目
select sex , province, count(case province when '江苏' then '江苏' end )as '数量' from student group by province, sex;
查询结果如下:
当数据较多时,使用以上数据查询占用大量的资源,因此可以简单写成以下形式:
select sex as '性别' , count(case province when '江苏' then '江苏' end )as '浙江省' from student group by sex;
查询结果如下:
补充:
(1)select (case province when '浙江' then '浙江' when '江苏' then '江苏' else province end ) as 省份 from student;
else province 默认为除浙江、江苏 外显示其他城市
(2) case when 可以跟不相等的判断。
可用于=,>=,<,<=,<>,is null,is not null 等的判断。
如:
三、CASE WHEN 与 DECODE 比较
1,DECODE Oracle 特有;
2,CASE WHEN Oracle , SQL Server, MySQL 都可用;
3,DECODE 只能用做相等判断,但是可以配合sign函数进行大于,小于,等于的判断,
CASE 可用于=,>=,<,<=,<>,is null,is not null 等的判断;
4,DECODE 使用其来比较简洁,CASE 虽然复杂但更为灵活;
江苏
浙江
查询
函数
结果
江苏省
性别
省份
浙江省
女生
男生
统计
形式
数据
数量
男女
表达式
搜索
复杂
简洁
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州为想互联网科技有限公司
苏州找大状互联网科技有限公司
河南真二互联网科技有限公司
网络科技有限互联网
互联网科技公司电话
互联网科技公司有哪些
深圳卡尔迅互联网科技有限公司怎么样
中国最先进互联网科技公司
中盈科技互联网信息有限公司
天速互联网络科技有限公司
昭通互联网科技选哪家
成都互联网科技公司工作好不好
小米互联网科技园入驻
江苏苏星互联网科技有限公司
21世纪互联网科技成就
山东大美朱楼互联网科技有限公司
广东鹅鹅鹅互联网科技有限公司
中国互联网公司的科技投入
悟空问答互联网科技
科技和互联网行业的特点
新华互联网科技学校
腾讯阿里互联网科技
北京互联网络科技有限公司
奇士达互联网科技
融势互联网科技
兼蜜互联网科技
互联网科技有限公司 翻译
中国航天科技大学国际工业互联网
互联网媒体平台算高科技产业
兰石爱特工业互联网科技分公司