SQL Server 2012查找具有重叠日期的行

时间:2018-09-25 18:00:20

标签: sql sql-server

我知道之前已经有人问过这个问题,但是我无法做出任何先前的答案,而且大多数答案都已经有很多年了。我有下表:

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     

1 个答案:

答案 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
             );