首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL CASE WHEN 條件分支判斷實戰範例

     編輯:MySQL 綜合教學

語法結構

CASE WHEN 為 MySQL 流程控制函數,支援簡單與搜尋兩種形式:

-- 簡單 CASE
CASE column WHEN value1 THEN result1 ... ELSE default END

-- 搜尋 CASE
CASE WHEN condition1 THEN result1 ... ELSE default END

實戰範例

假設維護日誌表 t_maintain_log,欄位 AFTER_QUALITY 儲存 '0'、'1',需轉換為可讀文本:

SELECT 
    CASE a.AFTER_QUALITY 
        WHEN '0' THEN '過免維期' 
        WHEN '1' THEN '未過免維期' 
        ELSE '錯誤數據' 
    END AS AFTER_QUALITY 
FROM t_maintain_log a;

結果展示

原始值轉換後
0過免維期
1未過免維期
其他錯誤數據

應用場景

  • 報表欄位值轉換(狀態碼→中文)。
  • 動態列邏輯(如:金額區間分級)。
  • 配合聚合函數做條件統計:SUM(CASE WHEN status=1 THEN 1 ELSE 0 END)。

注意事項

  • ELSE 子句可省略,預設返回 NULL。
  • 返回類型以首個 THEN 結果為準,建議保持一致。
  • MySQL 8.0+ 亦支援標準 SQL CASE 表達式,語法一致。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved