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

Truy vấn SQL Với Row_Number, sắp xếp theo mệnh đề where

rownum là một cột giả đếm các hàng trong tập hợp kết quả sau mệnh đề where đã được áp dụng.

Đây có phải là những gì bạn đang cố gắng đạt được không?

SELECT *
FROM ( 
    SELECT id, column1, column2
    FROM atable ORDER BY 2 DESC
) 
WHERE ROWNUM < 100;

Bởi vì đó là một cột giả hoàn toàn là một bộ đếm các hàng xuất phát từ mệnh đề where nên nó sẽ không cho phép bạn thực hiện phân trang (tức là từ 200 đến 300).

Đây có thể là những gì bạn đang tìm kiếm:

SELECT *
FROM
 (SELECT a.*, rownum rnum FROM
     (SELECT id, column1, column2 FROM atable ORDER BY 2 DESC) a WHERE rownum <= 300)
WHERE rnum >= 200;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. oracle sql plus spool

  2. Oracle:Định dạng chuỗi kết nối tức thời là gì?

  3. Cách sử dụng truyền một mảng trong hàm PL / SQL

  4. chúng ta có thể thực hiện lệnh unix từ thủ tục oracle10g không

  5. Có tốt không khi luôn sử dụng mệnh đề tham gia trong Oracle?