🧾SQL CASE WHEN 判斷錯誤?完整解析資料欄位邏輯與常見錯誤(工程師實戰教學)
一個常見的資料問題:為什麼 SQL 查出來的結果不對? 在資料分析或資料庫開發中,工程師常會遇到一種情況: SQL 語法沒有錯,但查出來的結果卻不符合預期。 這通常不是語法問題,而是 邏輯設計錯誤 。 其中最常見的來源,就是 CASE WHEN 條件判斷順序 。 什麼是 CASE WHEN? 在 SQL 中, CASE WHEN 可以理解為: 如果符合某個條件 → 回傳某個值,否則回傳其他值 簡單來說就是 SQL 的 if-else 。 例如: SELECT CASE WHEN score >= 90 THEN 'Excellent' WHEN score >= 60 THEN 'Pass' ELSE 'Fail' END AS Result FROM StudentScore 邏輯意思是: 條件 回傳 分數 ≥ 90 Excellent 分數 ≥ 60 Pass 其他 Fail CASE WHEN 有一個非常重要的特性 SQL 的 CASE 是 由上往下判斷 。 只要符合第一個條件,就會停止判斷。 例如: CASE WHEN value > 10 THEN 'A' WHEN value > 5 THEN 'B' END 如果 value = 20 結果會是: A 因為第一條就符合。 實際開發情境:資料欄位需要動態切換 在某些資料系統中,會出現多種來源的資料,例如: ...