SQL Server 2019 CASE表达式:排除特定记录设置Loan_Type_Mismatch值
修正后的CASE语句
CASE WHEN Loan_Type1 <> Loan_Type2 AND NOT (Loan_Type1 = 'D1' AND Loan_Type2 = 'D0') THEN 'Mismatch' ELSE '' END AS Loan_Type_Mismatch
逻辑说明
- 核心判断分为两个关联条件:
- 基础条件:
Loan_Type1 <> Loan_Type2先筛选出类型不匹配的记录 - 排除条件:
NOT (Loan_Type1 = 'D1' AND Loan_Type2 = 'D0')剔除你指定的特殊例外情况(即Loan_Type1为'D1'且Loan_Type2为'D0'时,即使类型不等也不标记为Mismatch)
- 基础条件:
原语句使用OR导致逻辑混乱,错误地将部分单独场景判定为Mismatch,修正后通过AND组合条件,精准匹配你要的规则。
内容的提问来源于stack exchange,提问作者evanburen
相关产品推荐
相关产品推荐

