说我有上面的结果,并想排除ID为14010497的所有行,因为至少其中一行的日期是2/25。我将如何过滤呢?使用WHERE table.end_date > '2019-02-25'
仍会包含日期为2-23的行
答案 0 :(得分:1)
尝试这样的事情:
select * from your_table
where id not in (
select distinct id
from your_table
where end_date > '2019-02-25'
)
/
答案 1 :(得分:1)
我会使用not exists
:
select t.*
from t
where not exists (select 1
from t t2
where t2.id = t.id and t2.end_date = '2019-02-25'
);
我强烈建议在not exists
上使用not in
,因为它可以更直观地处理NULL
值。如果子查询中的任何值为NOT IN
,则NULL
将不返回任何行。