Det enklaste sättet att hitta en överlappning är så här:
IF EXISTS (SELECT 1 FROM table WHERE @myValueLo <= ExistingRangeEnd AND @myValueHi >= ExistingRangeStart)
-- Overlaps
ELSE
-- Doesn't overlap
Detta kan visa sig fungera om du jämför villkoret ovan med var och en av staplarna i diagrammet nedan:
Existing range: |-------------------|
Overlaps: |-------------| |------------|
|----------------------------------|
|-------------|
Not overlaps: |-----| |----|
i alla överlappningsfall är båda dessa test sanna:
- startdatumet av det befintliga intervallet är alltid före slutdatumet av det nya sortimentet
- slutdatumet av det befintliga intervallet är efter startdatumet av det nya sortimentet
De som inte överlappar misslyckas med det ena eller andra testet.