यहां LAG
का उपयोग करके एक समाधान दिया गया है फ़ंक्शन या Oracle, जो आपको पिछली पंक्ति तक पहुंच प्रदान करता है।
और, आपको अपनी आवश्यकता के अनुसार केवल अपनी तालिका से पंक्ति 2 और 5 प्राप्त करनी चाहिए, क्योंकि पंक्ति 6 में end_no
है 224 के रूप में, जो end_no
. से कम नहीं है row5 का जो 223
. है
SELECT id, name, start_no, end_no
FROM (
SELECT id, name, start_no, end_no,
lag(start_no, 1, 0) over (order by id) prev_start_no ,
lag(end_no, 1, 0) over (order by id) prev_end_no
FROM test
)
WHERE start_no BETWEEN prev_start_no AND prev_end_no
AND end_no BETWEEN prev_start_no AND prev_end_no;