case when oracle mysql_Mysql oracle casewhen 完美应用

case when oracle mysql_Mysql oracle casewhen 完美应用使用SQL99标准通用语法中的case表达式,将职位是分析员的,工资+1000;职位是经理的,工资+800;职位是其它的,工资+4001;case字段when条件1then表达式1when条件2then表达式2else表达式nendselectename”姓名”,job”职位”,sal”涨前工资”,casejobwhen‘ANALYST‘thensal+1000wh…


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

使用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;

原文:https://www.cnblogs.com/zhengfujava/p/9746740.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196766.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • FT到底值多少钱——再议Fcoin机制及估值模型[通俗易懂]

    一、写在前面两星期前,「朋克」写了一篇关于Fcoin的文章——《FcoinToken(FT)——数字货币交易所的颠覆者,还是无情镰刀的收割者》,彼时全网整体舆论偏负面,称FT为“资金盘”、“传销币”、“庞氏骗局”屡屡不绝。当时「朋克」整体对FT做了较为客观的中性偏正面评价。 仅仅一个星期之后,随着张健的“以德报怨”,在Fcoin上线bnb之后,舆论迅速反转,整体舆论从负面慢慢变…

    2022年4月16日
  • epoll、poll、select的原理和区别

    epoll、poll、select的原理和区别一、什么是epoll?epoll是一种I/O事件通知机制,是linux内核实现IO多路复用的一个实现。IO多路复用是指,在一个操作里同时监听多个输入输出源,在其中一个或多个输入输出源可用的时候返回,然后对其的进行读写操作。epoll有两种工作方式,ET-水平触发和LT-边缘触发(默认工作方式),主要区别是:LT,内核通知你fd是否就绪,如果没有处理,则会持续通知。而ET,内核只通知一次。二、epoll的三个函数intepoll_create(intsize)size参数告诉内核这

    2022年10月31日
  • 五笔字根口诀_五笔拆字口诀和方法详解

    五笔字根口诀_五笔拆字口诀和方法详解一、五笔字根表二、五笔字根口诀12G王旁青头戋(兼)五一(“兼”与“戋”同音)H目具上止卜虎皮(“具上”指具字的上部)F土士二干十寸雨(可别忘了革字底)J日早两竖与虫依D大犬三羊古石厂(羊底龙头套上套下)K口与川,字根稀S木丁西L田甲方框四车力(“方框”即“口”)A工戈草头右框七(“右框”即“匚”)M山由贝,…

    2022年8月10日
  • 专题实验 日期类型

    专题实验 日期类型

    2021年8月30日
  • HTML文件的注释及其快捷键

    HTML文件的注释及其快捷键                                       &lt;!–注释内容–&gt;                   快捷键:ctrl+?…

    2022年4月29日
  • 什么是UE4(学ue4还是unity)

    对于游戏的来说,最能够影响它的性能的,便是游戏程序的开发、维护工作了。游戏开发、维护工作都是通过游戏开发引擎来完成的,而U3D和UE4正是如今行业主流的两款游戏开发引擎。不同的游戏开发引擎在不同的游戏中使用,那么具体的u3d和ue4的区别是什么?小编常被想要进入游戏行业的同学问到,学U3D和UE4哪个更好?其实这主要是看你自己的就业倾向。下面小编就从两款游戏开发引擎的具体区别来讲讲我们该如何选择。…

    2022年4月14日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号