如何为SQL‘质量检查’规则添加例外?
如何为SQL‘质量检查’规则添加例外?
嘿,这个需求很典型——给原本严格的质量校验规则加个特殊豁免对吧?我来帮你调整查询,完美适配这个例外场景。
原来的查询是找出经理分配和参考表不一致的情况,现在要排除掉「基金为BOSTON且经理是Kim/John/Danny」的情形(因为这些是允许的例外)。我们只需要在WHERE子句里补充一个排除条件就行:
SELECT A.ID, A.FUND, B.MANAGER_NAME, C.FUND, C.MGR_NM FROM TABLE_1 A LEFT JOIN TABLE_2 B ON A.ID = B.ID LEFT JOIN REFERENCE_TABLE C ON A.FUND = C.FUND WHERE -- 原条件:经理分配和参考表不一致 B.MANAGER_NAME != C.MGR_NM -- 新增:排除波士顿基金的允许经理例外 AND NOT ( A.FUND = 'BOSTON' AND B.MANAGER_NAME IN ('Kim', 'John', 'Danny') )
逻辑解释:
- 原条件
B.MANAGER_NAME != C.MGR_NM负责找出所有分配不一致的记录; - 新增的
AND NOT (...)部分用来「豁免」符合例外规则的记录:当基金是BOSTON,并且经理是允许的三个人之一时,就算和参考表的MGR_NM不一致,也不会被筛选出来; - 对于其他所有基金,依然保持1:1的严格校验,只要经理不匹配就会被查出。
小提示:如果你的数据库对字符串大小写敏感,注意'BOSTON'和经理名字的大小写要和数据里的一致,或者用LOWER()函数统一转换后比较,避免漏判哦。
备注:内容来源于stack exchange,提问作者Benjamin
相关产品推荐
相关产品推荐

