case 函数语法与使用
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,case 函数是聚合函数的一种,为统计函数。case表达式:CASE selector WHEN value1 THEN action1; WHEN value2 THEN a
千家信息网最后更新 2024年09月22日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安全错误
数据库的锁怎样保障安全
华为欧拉软件开发
网络安全中名词解释
云南大理网络安全教育平台
网络安全操作标准流程
软件开发与创新5000字论文
哪种公司的数据库好用
西工大与东南大学网络安全
ftp等服务器实现
运营网站需要什么服务器
数据库夜大试卷与答案
网络安全众测服务要求
实验小学网络安全宣传
白沟网络技术公司招聘信息
百度是什么类型的数据库
数据库查询的创建
福州社交软件开发
住建网络安全自查情况报告
美团数据库巡检设计
风景拼图软件开发
软考 软件开发等级
软件开发 知识图谱
杭州吱信网络技术有限公司
数据库实验数据恢复技术
数据库架构分布式
中卫网络安全局
数据库建库的数据
互联网领先科技成果已征集结束
数据库系统运行模式和应用模式
数据库应不应该使用存储函数
yii 修改 数据库链接