可能的简单 SQL 查询
Possible simple SQL Query
我觉得自己很傻,因为这应该有一个简单的答案。也许我需要更多的咖啡。
想象一下下面的 Oracle table:
Row
ID1
ID2
1
B
B
2
B
A
3
C
A
4
C
B
5
D
A
6
D
B
7
E
A
如何 select 除了 ID1 = E 之外的所有行,以及 ID2 = A 和 ID1 = B 或 C 的行(意味着我想要所有ID1 = D,但对于 ID1 = B 或 C,删除 ID2 = A)。
我可以用很多 OR 来做,但是有更好的方法吗?
How can I select all the lines except ID1 = E, and the ones with ID2 = A and ID1 = B or C (
这是布尔逻辑。您可以使用:
where not (id1 = 'E' or (ID2 = 'A' and ID1 IN ('B', 'C')))
我觉得自己很傻,因为这应该有一个简单的答案。也许我需要更多的咖啡。
想象一下下面的 Oracle table:
Row | ID1 | ID2 |
---|---|---|
1 | B | B |
2 | B | A |
3 | C | A |
4 | C | B |
5 | D | A |
6 | D | B |
7 | E | A |
如何 select 除了 ID1 = E 之外的所有行,以及 ID2 = A 和 ID1 = B 或 C 的行(意味着我想要所有ID1 = D,但对于 ID1 = B 或 C,删除 ID2 = A)。 我可以用很多 OR 来做,但是有更好的方法吗?
How can I select all the lines except ID1 = E, and the ones with ID2 = A and ID1 = B or C (
这是布尔逻辑。您可以使用:
where not (id1 = 'E' or (ID2 = 'A' and ID1 IN ('B', 'C')))