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

Oracle / SQL:Tại sao truy vấn SELECT * FROM các bản ghi WHERE rownum> =5 VÀ rownum <=10 - trả về 0 hàng

Trong Oracle, các giá trị Rownum được chỉ định sau giai đoạn lọc của truy vấn - chúng không phải là các hàng của bảng, chúng là các hàng của tập kết quả truy vấn.

Vì vậy, hàng đầu tiên quay lại sẽ luôn được cung cấp rownum 1, hàng thứ hai quay lại rownum 2, v.v.

Giá trị rownum chỉ tăng lên sau khi nó được chỉ định, vì vậy bất kỳ truy vấn nào như

select * from t where ROWNUM > 1

sẽ không bao giờ trả về bất kỳ kết quả nào. Truy vấn này cho biết 'Tôi không muốn thấy hàng đầu tiên được trả lại cho tôi, chỉ những hàng sau đó' là một nghịch lý nên không có gì được trả lại.

Xem Hỏi Tom:Trên ROWNUM và Kết quả Giới hạn để biết thêm chi tiết.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi cơ sở 36 sang cơ sở 10 chỉ sử dụng SQL

  2. GROUP BY không có chức năng tổng hợp

  3. Thêm ký hiệu tiền tệ £, $ vào các trường ORACLE nhất định

  4. Xoay vòng dữ liệu bằng cách sử dụng hai cột

  5. Trang chủ của Oracle 10g express không xuất hiện