Trong Oracle Database, ROWNUM là một pseudocolumn (cột giả) được sử dụng để gán số thứ tự cho các hàng trong một kết quả truy vấn. ROWNUM rất hữu ích trong nhiều tình huống, chẳng hạn như giới hạn số lượng hàng được trả về bởi một truy vấn hoặc tạo số thứ tự cho các hàng.
Dưới đây là một số ví dụ cơ bản về cách sử dụng ROWNUM trong Oracle Database:
1. Giới hạn số lượng hàng trả về
Nếu bạn muốn lấy chỉ 10 hàng đầu tiên từ một bảng, bạn có thể sử dụng ROWNUM như sau:
## lấy 10 rows từ đầu xuống
SELECT * FROM data_big_copy WHERE ROWNUM <= 10; select * from (SELECT * FROM data_big_copy ORDER BY id ASC) WHERE ROWNUM <= 10 ;
## Lấy 10 rows từ dưới lên
select * from (SELECT * FROM data_big_copy ORDER BY id DESC) WHERE ROWNUM <= 10 ;
## Lấy thông tin kết quả từ hàng n tới hàng m: sử dụng OFFSET
SELECT * FROM data_big ORDER BY id OFFSET 9 ROWS FETCH NEXT 11 ROWS ONLY;
## sử dụng ROWNUM
select * from (select rownum rnum, content,date_time from data_big_1m) where rnum >5 and rnum <20;
2. Sử dụng ROWNUM để đánh số thứ tự các hàng
Bạn có thể sử dụng ROWNUM để thêm một cột số thứ tự vào kết quả truy vấn:
SELECT ROWNUM, column1, column2 FROM your_table;
- ROWNUM bắt đầu từ 1 và tăng dần cho mỗi hàng trả về.
- Khi sử dụng ROWNUM với các điều kiện khác hoặc các hàm phân tích phức tạp, bạn có thể cần sử dụng subquery để đảm bảo kết quả như mong muốn.