我有以下情况:
表1
ID Column_B
10001 X
10001 Y
10002 X
10003 X
10003 Y
10004 X
10005 X
10005 Y
我需要执行一个查询,以显示在Column_B上仅具有X的ID,因此结果将是:
10002 X
10004 X
如果我运行以下选择,它还会显示在Column_B上具有Y的记录:
select ID, Column_B from Table1 where Column_B = 'X'
ID Column B
10001 X
10002 X
10003 X
10004 X
10005 X
我在任何地方都找不到与此案例相似的东西。在这里想弄清楚我的想法。似乎很简单。该死的。
答案 0 :(得分:2)
您可以使用聚合:
select id
from t
group by id
having min(column_b) = max(column_b) and min(column_b) = 'X';
答案 1 :(得分:1)
使用关系代数-在这种情况下,MINUS
:
SELECT ID
FROM TABLE1
WHERE COLUMN_B = 'X'
MINUS
SELECT ID
FROM TABLE1
WHERE COLUMN_B = 'Y';
首先从与“ X”相关的所有ID的列表开始,然后减去与“ Y”相关的ID的列表。
好运。