Tôi đã cố gắng truy vấn dưới đây:Lựa chọn hàng thứ hai của một bảng sử dụng rownum
select empno from (
select empno
from emp
order by sal desc
)
where rownum = 2
này không được trả lại bất kỳ hồ sơ.
Khi tôi cố gắng truy vấn này
select rownum,empno from (
select empno from emp order by sal desc)
Nó mang lại cho tôi kết quả này:
ROWNUM EMPNO
1 7802
2 7809
3 7813
4 7823
bất cứ ai có thể cho tôi biết vấn đề với truy vấn đầu tiên của tôi là gì? Tại sao nó không trả lại bất kỳ bản ghi nào khi tôi thêm bộ lọc ROWNUM?
: Cảm ơn lời giải thích +1 ... truy vấn không đáng giá vì tôi muốn các rownum của các hồ sơ lấy trên cơ sở thứ tự của sal desc, truy vấn dint làm việc nếu chúng ta đặt rownum trong truy vấn bên trong, nó sẽ cho chúng ta rownum của các hồ sơ của emp bảng, không phải của các dữ liệu được sắp xếp .... Cảm ơn bạn đã giải thích –
Câu trả lời hay (+1), nhưng truy vấn bạn đề xuất sẽ không hoạt động chính xác và trả lại nhân viên trả lương cao thứ 2. Bạn sẽ cần một cấp truy vấn phụ khác để đảm bảo ROWNUM được gán _after_ ORDER BY. –
@BrankoDimitrijevic bạn nói đúng. Tôi sẽ sửa câu trả lời –