【发布时间】:2015-07-23 23:09:44
【问题描述】:
如果结果集中的任何行满足特定条件,如何不选择任何行?
例如:
Id|SomeColumn|Indicator
1 | test | Y
1 | test1 | Y
1 | test2 | X
2 | test1 | Y
2 | test2 | Y
3 | test1 | Y
假设我想选择 Id = 1 的所有行,除非存在指示符 = X 的行
目前我正在做这样的事情
SELECT * FROM SOMETABLE WHERE ID = 1 AND INDICATOR = 'Y' AND ID NOT IN (SELECT ID WHERE INDICATOR = 'X')
但这感觉真的很笨拙,我觉得可能有更好的方法来做到这一点。是否存在或者我只是过于敏感
【问题讨论】:
-
您可以将
INDICATOR = 'Y'排除在WHERE之外,否则也可以。