首页 > 数据库技术 > 详细

MySql 中关键字 case when then else end 的用法

时间:2018-05-15 01:24:59      阅读:194      评论:0      收藏:0      [点我收藏+]

解释:

1 SELECT            
2     case                   -------------如果
3     when sex=1 then  -------------sex=‘1‘,则返回值‘男‘
4     when sex=2 then  -------------sex=‘2‘,则返回值‘女‘  
5     else 其他                 -------------其他的返回‘其他’
6     end                    -------------结束
7 from   sys_user            --------整体理解: 在sys_user表中如果sex=‘1‘,则返回值‘男‘如果sex=‘2‘,则返回值‘女‘ 否则返回‘其他’

 

--- 用法一:

1 SELECT 
2             CASE WHEN STATE = 1 THEN 成功 
3                  WHEN STATE = 2 THEN 失败
4             ELSE 其他 END  
5             FROM  SYS_SCHEDULER

 

---用法二:

1 SELECT STATE
2             CASE WHEN 1 THEN 成功 
3                  WHEN 2 THEN 失败
4             ELSE 其他 END  
5             FROM  SYS_SCHEDULER

 

例子:

技术分享图片
 1 有员工表empinfo 
 2 ( 
 3 Fempno varchar2(10) not null pk, 
 4 Fempname varchar2(20) not null, 
 5 Fage number not null, 
 6 Fsalary number not null 
 7 ); 
 8 假如数据量很大约1000万条;写一个你认为最高效的SQL,用一个SQL计算以下四种人: 
 9 fsalary>9999 and fage > 35 
10 fsalary>9999 and fage < 35 
11 fsalary <9999 and fage > 35 
12 fsalary <9999 and fage < 35 
13 每种员工的数量; 
14 select sum(case when fsalary > 9999 and fage > 35
15 then 1
16 else 0end) as "fsalary>9999_fage>35",
17 sum(case when fsalary > 9999 and fage < 35
18 then 1
19 else 0
20 end) as "fsalary>9999_fage<35",
21 sum(case when fsalary < 9999 and fage > 35
22 then 1
23 else 0
24 end) as "fsalary<9999_fage>35",
25 sum(case when fsalary < 9999 and fage < 35
26 then 1
27 else 0
28 end) as "fsalary<9999_fage<35"
29 from empinfo;
View Code

 

MySql 中关键字 case when then else end 的用法

原文:https://www.cnblogs.com/anche/p/9038802.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!