Mysql 常用函數(4)- case 函數
- 2020 年 5 月 15 日
- 筆記
- Mysql常用函數, 測試必知必會系列 - Mysql常用函數
Mysql常用函數的匯總,可看下面系列文章
//www.cnblogs.com/poloyy/category/1765164.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 !!!!