SQL WHERE子句主条件多选且单个值需附加子条件的语法求助
解决SQL WHERE条件筛选问题
直接用逻辑运算符组合条件就能实现需求,核心是把「ITEM1-ITEM5无SUBCRITERIA限制」和「ITEM6必须匹配SUBCRITERIA='SUBITEM1'」这两个分支用OR连接:
WHERE (CRITERIA IN ('ITEM1', 'ITEM2', 'ITEM3', 'ITEM4', 'ITEM5')) OR (CRITERIA = 'ITEM6' AND SUBCRITERIA = 'SUBITEM1')
常见错误提醒
- 别误写成
CRITERIA IN ('ITEM1',...,'ITEM6') AND SUBCRITERIA = 'SUBITEM1',这会强制所有ITEM都受SUBCRITERIA限制,完全不符合需求。 - 注意括号的使用:虽然
AND优先级高于OR,加括号能让逻辑更清晰,避免后续维护时产生歧义。
内容的提问来源于stack exchange,提问作者Matt Krets
相关产品推荐
相关产品推荐

