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

Chọn các hàng cho đến khi điều kiện được đáp ứng

Sử dụng một truy vấn phụ để tìm ra điểm bạn nên dừng, sau đó trả lại tất cả hàng từ điểm xuất phát của bạn đến điểm dừng được tính toán.

SELECT
  *
FROM
  yourTable
WHERE
      id >= 4
  AND id <= (SELECT MIN(id) FROM yourTable WHERE b = 'F' AND id >= 4)

Lưu ý, điều này giả định rằng bản ghi cuối cùng luôn là chữ 'F'. Bạn có thể xử lý bản ghi cuối cùng là chữ 'T' bằng cách sử dụng COALESCE .

SELECT
  *
FROM
  yourTable
WHERE
      id >= 4
  AND id <= COALESCE(
              (SELECT MIN(id) FROM yourTable WHERE b = 'F' AND id >= 4),
              (SELECT MAX(id) FROM yourTable                          )
            )



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hiệu suất của SUBSTR trên CLOB

  2. Cách nối một ký tự đặc biệt trong Oracle SQL khi tìm thấy kết quả khớp chính xác trong cột

  3. Các biến PL / SQL trong con trỏ có hiệu quả giống như các tham số liên kết không?

  4. Làm cách nào để lưu trữ tệp TIFF trong Oracle?

  5. Oracle / SQL - Tìm các bản ghi có một giá trị không bao gồm giá trị null