, . , , ...
1) InputBegin
2) InputEnd
3)
SELECT * FROM yourTable WHERE InputEnd < ExclusionPeriodStart
UNION ALL
SELECT * FROM yourTable WHERE InputBegin > ExclusionPeriodEnd
InputEnd.
, .
, , .
( ), ( , ). , UNION ALL UNION.
, , . ( 5- , , .)
EDIT. , , . , ...
. , , , , ...
1 -->--> 4
3 -->--> 6
5 -->--> 8
7 -->--> 9
1 3 2 4?
, , , .
, , A B, B A.
SELECT
*
FROM
yourTable AS first_range
INNER JOIN
yourTable AS second_range
ON second_range.start_date >= first_range.start_date
AND second_range.start_date <= first_range.end_date
first_range. start_date , start_date .
EDIT2: , , ?
, , , .
SELECT * FROM yourTable WHERE InputEnd >= ExclusionPeriodStart
INTERSECT
SELECT * FROM yourTable WHERE InputBegin <= ExclusionPeriodEnd
, , . query1 . , ...
SELECT
*
FROM
yourTable
WHERE
InputStart <= ExclusionPeriodEnd
AND InputEnd >= ExclusionPeriodStart
WHERE , . , , (currently (start of table) -> (ExclusionPeriodEnd)).
, : ...
SELECT
*
FROM
yourTable
WHERE
InputStart <= ExclusionPeriodEnd
AND InputStart >= ExclusionPeriodStart - (maximumLength)
AND InputEnd >= ExclusionPeriodStart
.
max lnegth? , .
; , . SELECT MAX(calculatedField) FROM yourTable . . INSERTS, , DELETE ( , , ? , , ).