sql >> Database >  >> RDS >> Oracle

Vergelijk de nde rij met de n+1de rij en als deze in het bereik van de nde rij ligt, druk dan n+1 rij af USNG ORACLE QUERY

Hier is een oplossing met LAG functie of Oracle, waarmee u toegang krijgt tot de vorige rij.

En u zou alleen rij 2 en 5 uit uw tabel moeten halen, volgens de vereisten die u heeft, aangezien rij 6 end_no heeft als 224, wat niet minder is dan end_no van rij5 dat is 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;


  1. ERROR 1067 (42000):Ongeldige standaardwaarde voor 'created_at'

  2. Kan postgresql-service niet starten op CentOS 7

  3. Hoe kan ik detecteren of de aangesloten database MariaDB of MySQL is?

  4. Hoe maak je een veilige mysql voorbereide verklaring in php?