case 函数语法与使用
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,case 函数是聚合函数的一种,为统计函数。case表达式:CASE selector WHEN value1 THEN action1; WHEN value2 THEN a
千家信息网最后更新 2025年12月03日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安全错误
数据库的锁怎样保障安全
修改数据库配置连接在哪里
铜仁梦创网络技术有限公司
网络安全活动方案大班
网络安全工作是干嘛得
云股票炒股软件开发
数据库系统原理 电子书
农行软件开发中心会独立吗
苹果平板服务器错误怎么办
电脑网络技术怎么发展
江西服务器防火墙哪家好
北京专业软件开发创意
外网访问数据库
宣州软件开发项目管理在线咨询
微信安全连接到服务器地址
软件开发6步骤
金山区营销软件开发不二之选
优质的游戏服务器托管公司
服务器 刷单
练兵备战日日勤网络安全
互联网科技能抄底吗
网络安全公需课培训考试
网络安全管理法第74条文内容
多媒体数据库的特征不包括
群晖918安装数据库
魔兽数据库卡拉赞第一个BOSS
网络技术三级2021年试卷
宝安区新一代网络技术开发分类
软件开发进展缓慢
云米科技和互联网
游戏服务器aoi