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 !!!!