如何解决可能的简单 SQL 查询
我觉得自己很愚蠢,因为这应该有一个简单的答案。也许我需要更多的咖啡。
想象以下 Oracle 表:
行 | ID1 | ID2 |
---|---|---|
1 | B | B |
2 | B | A |
3 | C | A |
4 | C | B |
5 | D | A |
6 | D | B |
7 | E | A |
如何选择所有行除了 ID1 = E,以及 ID2 = A 和 ID1 = B 或 C 的行(意味着我想要所有 ID1 = D,但对于 ID1 = B 或 C ,删除 ID2 = A)。 我可以用很多 OR 来做到这一点,但有没有更好的方法?
解决方法
如何选择除 ID1 = E 之外的所有行,以及 ID2 = A 和 ID1 = B 或 C 的行(
这是布尔逻辑。您可以使用:
where not (id1 = 'E' or (ID2 = 'A' and ID1 IN ('B','C')))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。