case 在oracle和mysql_Mysql oracle casewhen 完美应用
使用SQL99标准通用语法中的case表达式,将职位是分析员的,工资+1000;职位是经理的,工资+800;职位是其它的,工资+400
1;
case 字段
when 条件1 then 表达式1
when 条件2 then 表达式2
else 表达式n
end
select ename "姓名",job "职位",sal "涨前工资",
case job
when ‘ANALYST‘ then sal+1000
when ‘MANAGER‘ then sal+800
else sal+400
end "涨后工资"
from emp;
2搜索函数
CASE
WHEN sex = ‘1‘ THEN ‘男‘
WHEN sex = ‘2‘ THEN ‘女‘
ELSE ‘其他‘ END
案例其中 count可以换成sum
SELECT
COUNT(CASE WHEN e.sex=1 THEN 1 END) "男",
COUNT(CASE WHEN e.sex=2 THEN 1 END) "女"
FROM emp e;
案例
/*
笔试题3:有一个员工表empinfo结构如下
create table empinfo(
fempno varchar2(10) primary key,
fempname varchar2(20) not null,
fage number(2) not null,
fsalary number(10,2) not null
);
insert into empinfo(fempno,fempname,fage,fsalary) values(‘1‘,‘AA‘,30,7000);
insert into empinfo(fempno,fempname,fage,fsalary) values(‘2‘,‘BB‘,31,8000);
insert into empinfo(fempno,fempname,fage,fsalary) values(‘3‘,‘CC‘,32,9000);
insert into empinfo(fempno,fempname,fage,fsalary) values(‘4‘,‘DD‘,33,10000);
insert into empinfo(fempno,fempname,fage,fsalary) values(‘5‘,‘EE‘,34,11000);
insert into empinfo(fempno,fempname,fage,fsalary) values(‘6‘,‘FF‘,35,12000);
insert into empinfo(fempno,fempname,fage,fsalary) values(‘7‘,‘GG‘,36,13000);
insert into empinfo(fempno,fempname,fage,fsalary) values(‘8‘,‘FF‘,37,14000);
假如该表有大约1000万条记录,写一句最高效的SQL语句,计算以下4种人中每种员工的数量
第1种人:fsalary>9999 and fage>35
第2种人:fsalary>9999 and fage<35
第3种人:fsalary<9999 and fage>35
第4种人:fsalary<9999 and fage<35
提示:只用一条SQL搞定
*/
select
sum(case when e.fsalary>9999 and e.fage>35 then 1 else 0 end) "第1种人",
sum(case when e.fsalary>9999 and e.fage<35 then 1 else 0 end) "第2种人",
sum(case when e.fsalary<9999 and e.fage>35 then 1 else 0 end) "第3种人",
sum(case when e.fsalary<9999 and e.fage<35 then 1 else 0 end) "第4种人"
from empinfo e;
Mysql oracle casewhen 完美应用
标签:acl mysql var varchar2 sum case 经理 number 表达式2
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:https://www.cnblogs.com/zhengfujava/p/9746740.html
case 在oracle和mysql_Mysql oracle casewhen 完美应用相关推荐
- oracle用户密码已过期,oracle提示登录密码过期完美解决方法
oracle 提示登录密码过期解决 1.登录到oracle的 服务器 2.切换到oracle 用户 3.设置到当前操作的实例名:export ORACLE_SID=XXX 4.连接数据库的命令行模式: ...
- oracle的9i,Oracle 9i-ORACLE9i下载-Oracle 9i下载 V1.0简体中文企业版-完美下载
Oracle9i是款优秀的数据库管理系统,ORACLE 9i是ORACLE系列中非常经典一个版本,其具备移植性强.可用性强.可扩展性强.数据安全性强和高稳定性等优点,适用于各类大.中.小.微机环境.O ...
- Oracle ADF和Oracle Jet一起工作。 建筑模式
在本文中,我将考虑在Oracle ADF和Oracle Jet的组合之上实现应用程序的各种体系结构模式. 练习ADF的组织可能会考虑将Oracle Jet合并到现有项目中,以刷新外观并使其具有现代感和 ...
- c oracle 多条语句,Oracle 实践:如何编写一条 sql 语句获取数据表的全部索引信息(兼容 Oracle 19c、Oracle 11g)...
一.引言 部门使用 Oracle 已经有一些时日,最近在工作中遇到了这么一个需求: 我们希望拿到某些数据表的全部索引信息,对索引信息进行检查,检查是否有漏掉没有创建的索引 这个需求,核心的点在于,我需 ...
- 红帽启动oracle,Redhat6.5 + oracle 11gR2 设置数据库开机自启动
鉴于上次断电问题导致开机后很多的单独数据库不能自动开机,总监又交给小菜一个任务,研究(上网找方法)下数据库开机自启. 小菜终于找到了,原创是centos6.4系统的,小菜用redhat6.5做实验,不 ...
- Oracle数据库:oracle外连接left/right/full outer join on,oracle扩展的左右外连接展示符号(+)
Oracle数据库:oracle外连接left/right/full outer join on,oracle扩展的左右外连接展示符号(+) 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大 ...
- Oracle数据库:oracle内连接inner join on,多表查询各种自链接、内连接、外连接的练习示例
Oracle数据库:oracle内连接inner join on,多表查询各种自链接.内连接.外连接的练习示例 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得 ...
- 查看oracle关闭重启,oracle 数据库关闭重启
Oracle 11G DataGuard重启详细过程 场景,重启数据库,不重启linux系统,所以不用考虑监听程序, #linux输入lsnrctl start 1 数据库关闭1.1 关闭主库 SHU ...
- oracle变mysql,Oracle变换成为Mysql注意事项
做项目的时候发现当要将Oracle数据库转换为Mysql需要将SQL语句中二者不兼容的方面需要修改 下面列出自己总结的注意事项: 1.日期格式的转换: Oracle Mysql 注意事项 to_cha ...
- 视频教程-oracle数据库教程-Oracle
oracle数据库教程 主要研究方向为J2EE..net .数据库 .前端.Android,曾经服务过大型上市国企IT部门,软件企业联合创始人,对软件研发管理.市场营销有自己独特思想体系! 张晨光 ¥ ...
最新文章
- [资料]Keychain 获取设备唯一
- 看微信了解MySQL及相关IT技术
- C++中的结构体,C管理进程代码,C++管理进程代码,C语言中的联合体
- oracle11g nid,Oracle工具之nid命令的使用
- 【HRBUST - 1996】数学等式 (HASH 或 二分)
- input回车触发事件_JavaScript学习笔记(十五)-- Event事件(上)
- EDA实验课课程笔记(六)——NC-verilog的介绍与使用(二)
- WPS加载项部署运行问题排查方法
- 19所高校进入A类!泰晤士计算机专业大学评级公布!
- 【图形学】计算机图形学的应用领域
- 练习题 斐波那契数列
- java怎么设置表格分页显示_javaweb--layui表格分页
- ios浏览器无法播放视频-node.js文件传输问题
- 蛙蛙推荐:如何编写高质量的python程序
- 谈谈#define xxxx(x,y) x##y
- [19/05/14-星期二] HTML_body标签(列表标签和图片标签)
- NIO、AIO概述总结
- 特斯拉、华为们要用软件重新定义汽车?
- 【愚公系列】2022年03月 微信小程序-富文本编辑器
- js下载二进制流到本地