Sử dụng SQL TOP LIMIT FETCH FIRST và ROWNUM
TOP, LIMIT, FETCH FIRST, và ROWNUM là các cách khác nhau để giới hạn số lượng bản ghi được trả về bởi một truy vấn SQL. Mỗi cách có những ưu điểm và nhược điểm riêng, và việc lựa chọn cách nào sẽ phụ thuộc vào hệ quản trị cơ sở dữ liệu (DBMS) bạn đang sử dụng và mục đích của truy vấn.
- TOP (Microsoft SQL Server)
- Cú pháp:
SELECT TOP number [PERCENT] column_name(s) FROM table_name [ORDER BY column_name(s)]
- Ví dụ:
SELECT TOP 5 * FROM customers ORDER BY name DESC;
- LIMIT (MySQL)
- Cú pháp:
SELECT column_name(s) FROM table_name [ORDER BY column_name(s)] LIMIT number [OFFSET number];
- Ví dụ:
SELECT * FROM customers ORDER BY name DESC LIMIT 5;
- FETCH FIRST (Oracle)
- Cú pháp:
SELECT column_name(s) FROM table_name [ORDER BY column_name(s)] FETCH FIRST number ROWS ONLY;
- Ví dụ:
SELECT * FROM customers ORDER BY name DESC FETCH FIRST 5 ROWS ONLY;
- ROWNUM (Oracle)
- Cú pháp:
SELECT column_name(s) FROM ( SELECT column_name(s), ROWNUM AS rn FROM table_name [ORDER BY column_name(s)] ) WHERE rn <= number;
- Ví dụ:
SELECT * FROM ( SELECT *, ROWNUM AS rn FROM customers ORDER BY name DESC ) WHERE rn <= 5;
Bảng so sánh:
Tính năng | TOP | LIMIT | FETCH FIRST | ROWNUM |
Hệ thống hỗ trợ | Microsoft SQL Server | MySQL, PostgreSQL | Oracle | Oracle |
Giới hạn số lượng bản ghi | Có | Có | Có | Có |
Sắp xếp | Có thể | Có thể | Có thể | Có thể |
Hiệu suất | Tốt | Tốt | Tốt | Tương đối thấp |
Dễ sử dụng | Dễ | Dễ | Khó hơn | Khó hơn |