case 函数语法与使用
发表于:2025-02-16 作者:千家信息网编辑
千家信息网最后更新 2025年02月16日,case 函数是聚合函数的一种,为统计函数。case表达式:CASE selector WHEN value1 THEN action1; WHEN value2 THEN a
千家信息网最后更新 2025年02月16日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安全错误
数据库的锁怎样保障安全
非遗物质文化数据库应用场景
网页软件开发店面
为预防网络安全提两条建议
服务器连接不上电脑怎么回事
镇巴软件开发技术
电脑配置ftp服务器
jdbc长连接数据库
规模大的app软件开发费用
ftp上传文件到服务器端口
服务器招标要求
mysql连接远程数据库
网络安全问题排查简报
各大企业的数据库
windows多服务器管理
选择云服务器有几步骤
海南服务器机柜云主机
网络技术培训 轨交 通讯稿
网络安全工程师招
什么叫网络数据库安全
金圣利软件开发有限公司
数据库算百分比
雷猴软件开发有限公司在哪里
西安网站建设软件开发
网络安全防诈骗班会
济源app软件开发价格
软件技术企业应用软件开发
魔兽世界只能玩一个服务器吗
互联网企业服务器解决方案
黑龙江省网络安全宣传仪式
ssm数据库异常处理