这是一个更大查询的一部分,但我发现这个特定部分总是返回 false?相同的表和列比较不同的记录。我正在尝试使用单个 case 语句检查两部分条件。
任何意见表示赞赏。
CASE
WHEN (CN IN ('C10302', 'C10002', 'C10602', 'C10702', 'C11002', 'C14002', 'C14082')
AND Mark NOT IN ('D-', 'D', 'D+', 'F', 'NC')
AND CN IN ('C10301', 'C10001', 'C10601', 'C10701', 'C11001', 'C14001', 'C14081')
AND Mark IN ('D-', 'D', 'D+', 'F', 'NC'))
THEN 1
ELSE 0
END AS C2
我认为它是在尝试比较相同的记录
我相信你正在寻找这个
所以你得到两个条件,只有一个必须为真才能得到 1
CASE WHEN ((CN IN ('C10302','C10002','C10602','C10702','C11002','C14002','C14082')
AND Mark NOT IN ('D-','D','D+','F','NC'))
OR ( CN IN ('C10301','C10001','C10601','C10701','C11001','C14001','C14081')
AND Mark IN ('D-','D','D+','F','NC'))) THEN 1
ELSE 0 END AS C2