Leder du efter sådan noget?
select *
from MY_TABLE
where (id, name) in ((1,'new'), (2, 'old')) and
date between effectiveDate and termDate
Dette leder efter parrene på en liste og tjekker derefter for datoerne mellem en række datoer.
EDIT:
Jeg tror, du vil dele dette op i flere klausuler, en for hvert sæt værdier:
where (id = 1 and name = 'new' and date between eff1 and term1) or
(id = 2 and name = 'old' and date between eff2 and term2) or
. . .