MySql 中關鍵字 case when then else end 的用法
阿新 • • 發佈:2018-05-15
img closed sta bsp sql hid not weight one
解釋:
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計算以下四種人:View Code9 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;
MySql 中關鍵字 case when then else end 的用法