Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Finden Sie Datensätze mit überlappendem Datumsbereich in SQL

Die frühere Antwort berücksichtigt keine Situationen, in denen t2 vollständig innerhalb von t1 liegt

select * from t t1
join t t2 on (t1.datefrom > t2.datefrom and t1.datefrom < t2.dateto  )
          or (t1.dateto   > t2.datefrom and t1.dateto   < t2.dateto  )
          or (t1.dateto   > t2.dateto   and t1.datefrom < t2.datefrom)