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

Chuyển đổi giữa mệnh đề để kết hợp

Những gì bạn đã nghe về quét phạm vi và between trong MySQL chỉ đơn giản là không đúng. Đây là trích dẫn từ tài liệu :

Vì vậy, việc sử dụng một chỉ mục không có gì đáng ngạc nhiên. Chỉ mục tốt nhất cho dữ liệu này sẽ là chỉ mục tổng hợp trên start, end .

Vấn đề mà bạn gặp phải là bạn có hai cột startend . Điều này làm cho truy vấn phức tạp hơn một chút.

Có thể hình dung phần sau có thể hoạt động tốt hơn trong một số trường hợp, với chỉ mục trên start và một chỉ mục riêng trên end và khóa chính trên các hàng:

select gt.*
from (SELECT * FROM autumn4.ip WHERE :number >= start) gt join 
     (SELECT * FROM autumn4.ip WHERE :number <= end) lt
     on gt.PRIMARYKEY = lt.PRIMARYKEY;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Định nghĩa cột không tương thích với định nghĩa cột được phân nhóm

  2. Làm thế nào để giải quyết ORA 00936 Lỗi biểu thức thiếu?

  3. So sánh các chuỗi bỏ qua dấu trong SQL (ORACLE)

  4. Tuyên bố trường hợp Oracle được giải thích với các mẹo và ví dụ

  5. ORA-01855:SA / SAU. hoặc PM / P.M. yêu cầu