[英]How to exclude certain entries from a query [SQL]
我確實有以下問題:假設您有一個如下所示的表:
"ExampleTable"
NotPrimID Number
0 13
0 13
0 14
1 14
1 14
2 13
2 13
問:我想有一個query
,這將提供所有的NotPrimID
的其中確實有Number
為13,然而,如果Number
一的NotPrimID
也是14等,應該從列表中自動排除。
如果您只想要 ID,請使用group by
並having
:
select notprimid
from t
where number in (13, 14)
group by notprimid
having max(number) = 13; -- has 13 but not 14
如果你想要原始行,一種方法是exists
/ not exists
:
select t.*
from t
where exists (select 1
from t t2
where t2.notprimid = t.notprimids and
t2.number = 13
) and
not exists (select 1
from t t2
where t2.notprimid = t.notprimids and
t2.number = 14
);
您可以在此處使用存在邏輯:
SELECT DISTINCT NotPrimID
FROM ExampleTable t1
WHERE Number = 13 AND NOT EXISTS (SELECT 1 FROM ExampleTable t2
WHERE t2.NotPrimID = t1.NotPrimID AND t2.Number = 14);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.