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

Chọn cho đến khi hàng khớp trong postgresql?

Những gì bạn muốn là một loại điều kiện dừng. Theo như tôi biết thì không có thứ đó trong SQL, ít nhất là phương ngữ của PostgreSQL.

Những gì bạn có thể làm là sử dụng một thủ tục PL / PgSQL để đọc các hàng từ một con trỏ và trả lại chúng cho đến khi điều kiện dừng được đáp ứng. Nó sẽ không quá nhanh, nhưng sẽ ổn thôi. Nó chỉ là một FOR lặp qua một truy vấn với IF expression THEN exit; ELSE return next; END IF; . Không cần con trỏ rõ ràng vì PL / PgSQL sẽ sử dụng một con trỏ nội bộ nếu bạn FOR lặp qua một truy vấn.

Một tùy chọn khác là tạo con trỏ và đọc các phần hàng từ nó trong ứng dụng, sau đó loại bỏ một phần của phần cuối cùng khi điều kiện dừng được đáp ứng.

Dù bằng cách nào, con trỏ sẽ là thứ bạn muốn.

Nhân tiện, một biểu thức dừng thực sự sẽ không quá khó để triển khai trong PostgreSQL. Bạn sẽ phải triển khai loại nút thực thi mới, nhưng hỗ trợ CustomScan mới sẽ khiến điều đó trở nên thực tế trong một tiện ích mở rộng. Sau đó, bạn chỉ cần đánh giá một biểu thức để quyết định có tiếp tục tìm nạp các hàng hay không.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi cú pháp Postgres tại hoặc gần IF

  2. Tính tổng trên các phân vùng với các chức năng cửa sổ

  3. Django + Postgres + Chuỗi thời gian lớn

  4. Làm thế nào để nhận dạng tệp văn bản từ máy tính linux của tôi thông qua mã django mà không cần kiểm tra phần mở rộng và kích thước tệp của nó?

  5. Hàm PostgreSQL cho ID được chèn lần cuối