在mysql中,「case when」用於計算條件列表並傳回多個可能結果表達式之一;「case when」具有兩種語法格式:1、簡單函數「CASE[col_name]WHEN [value1]THEN[result1]…ELSE[default]END」;2、搜尋函數「CASE WHEN[expr]THEN[result1]…ELSE[default]END」。
本教學操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。
case when語句,用來計算條件列表並傳回多個可能結果表達式之一。
CASE 有兩種格式:簡單 CASE 函數將某個表達式與一組簡單表達式進行比較以確定結果。 CASE 搜尋函數計算一組布林表達式以確定結果。兩種格式都支援可選的 ELSE 參數。
在做資料分析的時候,需要從資料庫中尋找資料並進行分析展示,準確的資料查詢結果有利於後期簡潔有效的分析。這段期間用到了 mysql中的case when,記錄一下case when的用法。
CASE語句為多分支語句結構,該語句首先從WHEN後的VALUE中查找與CASE後的VALUE相等的值,如果查找到,則執行該分支的內容,否則執行ELSE後面的內容。
MySql的case when 語法有兩種:
1、簡單函數
CASE[col_name]WHEN[value1]THEN[result1]…ELSE[default]END
2、搜尋函數
CASE WHEN[expr]THEN[result1]…ELSE[default]END
簡單函數
CASE input_expression WHEN when_expression THEN result_expression [...n ] [ ELSE else_result_expression END
枚舉Input_expression所有可能的值。
Input_expression 和每個 when_expression 的資料型別必須相同,或是隱性轉換。
搜尋函數
CASE WHEN [Boolean_expression] THEN [result1]…ELSE [default] END
判斷Boolean_expression表達式,如果滿足,返回then後邊的結果
以人員表為例
#第一種用法,when後邊必須接case列的值,不能是表達式
select case sex when sex='1' then '男' when sex='2' then '女' else '其他' end as '性别' from people; select case sex when sex='2' then '女' when sex='1' then '男' else '其他' end as '性别' from people;
查詢結果
#原因:因為when後邊不是case列的所有可能值,而是表達式,但是為什麼會出現'男'這樣的結果,需要思考,後邊研究明白後,再更新
正確寫法
select case sex when '1' then '男' when '2' then '女' else '其他' end as '性别' from people;
查詢結果
推薦學習:mysql影片教學
以上是mysql的case when怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!