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 結果為準,建議保持一致。CASE 表達式,語法一致。