Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Porównaj n-ty wiersz z n+1-tym wierszem i jeśli znajduje się w zakresie n-tego wiersza, wydrukuj n+1 wiersz USNG ORACLE QUERY

Oto rozwiązanie wykorzystujące LAG funkcji lub Oracle, co daje dostęp do poprzedniego wiersza.

I powinieneś pobrać tylko wiersze 2 i 5 ze swojej tabeli, zgodnie z Twoimi wymaganiami, ponieważ wiersz 6 ma end_no jako 224, czyli nie mniej niż end_no z row5, czyli 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wywołanie procedury składowanej Oracle z parametrem wyjściowym z SQL Server

  2. funkcja bitand wyroczni

  3. Dlaczego średnik nie mógł zostać umieszczony w CommandText OracleCommand, gdy C#

  4. Oracle — zwróć wiele zliczeń jako jedno zapytanie

  5. Przenieś kolumnę Oracle na pierwszą pozycję