Sử dụng SQL TOP LIMIT FETCH FIRST và ROWNUM

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.

  1. 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;
  1. 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;
  1. 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;
  1. 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
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

 

Danh mục: SQL
0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận