LAG
を使用したソリューションは次のとおりです 関数またはOracle。前の行にアクセスできます。
また、行6にはend_no
があるため、要件に従って、テーブルから行2と5のみを取得する必要があります。 end_no
以上の224として 223
であるrow5の
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;