Mysql 常用函數(4)- case 函數


Mysql常用函數的匯總,可看下面文章

https://www.cnblogs.com/poloyy/p/12890763.html

 

case 的作用

  • if 的高級版,類似Java 里面的  switch ... case 
  • 通過條件表達式匹配 case 對應的值,然后執行對應的操作

 

簡單的 case 的語法格式

只有一個條件表達式

CASE  <表達式>
   WHEN <值1> THEN <操作>
   WHEN <值2> THEN <操作>
   ...
   ELSE <操作>
END;

語法格式說明

  • 將 <表達式> 的值 逐一和 每個 when 跟的 <> 進行比較
  • 如果跟某個<值>想等,則執行它后面的 <操作> ,如果所有 when 的值都不匹配,則執行 else 的操作
  • 如果 when 的值都不匹配,且沒寫 else,則會報錯

 

先看看emp表有什么數據

 

簡單 case 的栗子:

根據部門id進行判斷部門名稱

SELECT name,dept_id,
CASE
        dept_id 
        WHEN 0 THEN
        "實習生" 
        WHEN 1 THEN
        "銷售部" 
        WHEN 2 THEN
        "信息部" 
        WHEN 2 THEN
        "財務部" ELSE "沒有部門" 
    END AS "部門" 
FROM
    emp;

 

可搜索 case 的語法格式

CASE
    WHEN <條件1> THEN <操作>
    WHEN <條件2> THEN <操作>
    ...
    ELSE <操作>
END;

語法格式說明

  • 每個 <條件> 都是獨立的,可以用 and 來連接多個查詢條件
  • 不同 <條件> 是互不關聯且互不影響的

 

可搜索 case 的栗子

每個條件都是不一樣的,可以任意指定查詢條件,可簡單可復雜

select name,dept_id,
case 
when dept_id=1 and leader != 0 and is_enable !=0 then "銷售部在職員工"
when dept_id =2 and leader = 0 then "信息部大佬"
when leader = 8 then "任我行大佬"
else "啥都不是"
end
from emp;

 

重點

記得結尾要加 end !!!!

記得結尾要加 end !!!!

記得結尾要加 end !!!!

 


免責聲明!

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



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