MySql 中 case when then else end 的用法


 

解釋:

SELECT            
    case                   -------------如果
    when sex='1' then '男' -------------sex='1',則返回值'男'
    when sex='2' then '女' -------------sex='2',則返回值'女'  
    else 0                 -------------其他的返回'其他’
    end                    -------------結束
from   sys_user            --------整體理解: 在sys_user表中如果sex='1',則返回值'男'如果sex='2',則返回值'女' 否則返回'其他’

---用法一:
SELECT
            CASE WHEN STATE = '1' THEN '成功'
                 WHEN STATE = '2' THEN '失敗'
            ELSE '其他' END  
            FROM  SYS_SCHEDULER
---用法二:    
SELECT STATE
            CASE WHEN '1' THEN '成功'
                 WHEN '2' THEN '失敗'
            ELSE '其他' END  
            FROM  SYS_SCHEDULER

 

 

列子:

有員工表empinfo
(
Fempno varchar2(10) not null pk,
Fempname varchar2(20) not null,
Fage number not null,
Fsalary number not null
);
假如數據量很大約1000萬條;寫一個你認為最高效的SQL,用一個SQL計算以下四種人:
fsalary>9999 and fage > 35
fsalary>9999 and fage < 35
fsalary <9999 and fage > 35
fsalary <9999 and fage < 35
每種員工的數量;
select sum(case when fsalary > 9999 and fage > 35
then 1
else 0end) as "fsalary>9999_fage>35",
sum(case when fsalary > 9999 and fage < 35
then 1
else 0
end) as "fsalary>9999_fage<35",
sum(case when fsalary < 9999 and fage > 35
then 1
else 0
end) as "fsalary<9999_fage>35",
sum(case when fsalary < 9999 and fage < 35
then 1
else 0
end) as "fsalary<9999_fage<35"
from empinfo;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM