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

Chọn hàng thứ hai của bảng bằng rownum

Để giải thích hành vi này, chúng ta cần hiểu cách Oracle xử lýROWNUM. Khi gán ROWNUM cho một hàng, Oracle bắt đầu từ 1 và chỉ tăng giá trị khi một hàng được chọn; nghĩa là, khi các điều kiện trong mệnh đề WHERE được đáp ứng. Vì điều kiện của chúng tôi yêu cầu ROWNUM lớn hơn 2, không có hàng nào được chọn và ROWNUM không bao giờ tăng vượt quá 1.

Điểm mấu chốt là các điều kiện như sau sẽ hoạt động như mong đợi.

.. WHERE rownum =1;

.. WHERE rownum <=10;

Mặc dù các truy vấn với các điều kiện này sẽ luôn trả về 0 hàng.

.. WHERE rownum =2;

.. WHERE rownum> 10;

Trích dẫn từ Tìm hiểu Oracle rownum

Bạn nên sửa đổi truy vấn của mình theo cách này để hoạt động:

select empno
from
    (
    select empno, rownum as rn 
    from (
          select empno
          from emp
          order by sal desc
          )
    )
where rn=2;

CHỈNH SỬA :Tôi đã sửa truy vấn để lấy rownum sau đơn đặt hàng của sal desc



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giá trị của dữ liệu theo thời gian

  2. Hàm LOWER () trong Oracle

  3. Thiết kế ngược mô hình dữ liệu bằng Oracle SQL Developer

  4. 7 điều cần biết về các ngăn trên Cơ sở hạ tầng đám mây Oracle

  5. Làm cách nào để xem kết quả / đầu ra con trỏ trong Oracle SQL Developer?