क्या आप ऐसा कुछ ढूंढ रहे हैं?
select *
from MY_TABLE
where (id, name) in ((1,'new'), (2, 'old')) and
date between effectiveDate and termDate
यह एक सूची में जोड़ियों की तलाश करता है और फिर कई तिथियों के बीच की तारीखों की जांच करता है।
संपादित करें:
मुझे लगता है कि आप इसे कई खंडों में तोड़ना चाहते हैं, मूल्यों के प्रत्येक सेट के लिए एक:
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
. . .