簡體   English   中英

如何從查詢中排除某些條目 [SQL]

[英]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 byhaving

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM