Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

So sánh hàng thứ n với hàng thứ n + 1 và nếu nó nằm trong phạm vi của hàng thứ n thì in n + 1 hàng USNG ORACLE QUERY

Đây là một giải pháp sử dụng LAG chức năng hoặc Oracle, cung cấp cho bạn quyền truy cập vào hàng trước đó.

Và, bạn chỉ nên lấy hàng 2 và 5 từ bảng của mình, theo yêu cầu bạn có, vì hàng 6 có end_no là 224, không nhỏ hơn end_no của row5 là 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. Câu lệnh Oracle DELETE với bao thanh toán truy vấn con

  2. regexp_substr bỏ qua các vị trí trống

  3. Cách lấy chuỗi ký tự sau oracle

  4. Cú pháp SQL cho truy vấn cập nhật với kết nối bởi trước

  5. Oracle 11g - Kiểm tra ràng buộc với RegEx