Nejjednodušší způsob, jak najít překrytí, je tento:
IF EXISTS (SELECT 1 FROM table WHERE @myValueLo <= ExistingRangeEnd AND @myValueHi >= ExistingRangeStart)
-- Overlaps
ELSE
-- Doesn't overlap
To lze ukázat, že to funguje, pokud porovnáte podmínku výše s každým z pruhů v níže uvedeném diagramu:
Existing range: |-------------------|
Overlaps: |-------------| |------------|
|----------------------------------|
|-------------|
Not overlaps: |-----| |----|
ve všech případech překrývání platí oba tyto testy:
- datum zahájení existujícího rozsahu je vždy před datem ukončení nové řady
- datum ukončení ze stávajícího rozsahu je po datu zahájení nové řady
Ty, které se nepřekrývají, selžou v jednom nebo druhém z tohoto testu.