Apakah Anda mencari sesuatu seperti ini?
select *
from MY_TABLE
where (id, name) in ((1,'new'), (2, 'old')) and
date between effectiveDate and termDate
Ini mencari pasangan dalam daftar dan kemudian memeriksa tanggal di antara rentang tanggal.
EDIT:
Saya pikir Anda ingin memecahnya menjadi beberapa klausa, satu untuk setiap rangkaian nilai:
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
. . .