我知道之前已经有人问过这个问题,但是我无法做出任何先前的答案,而且大多数答案都已经有很多年了。我有下表:
FizzBuzzBang
我需要能够查看结果中具有ID重叠的日期段的行。这些行将出现在我的结果中:
ID Start End
1 1/1/2018 1/14/2018
1 1/15/2018 1/30/2018
1 1/20/2018 2/5/2018
2 2/1/2018 2/4/2018
2 2/1/2018 2/4/2018
2 2/20/2018 2/25/2018
3 2/1/2018 2/15/2018
答案 0 :(得分:3)
您可以使用exists
:
select t.*
from t
where exists (select 1
from t t2
where t2.id = t.id and t2.start < t.end and t2.end > t.start
);