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.

top

  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ăngTOPLIMITFETCH FIRSTROWNUM
Hệ thống hỗ trợMicrosoft SQL ServerMySQL, PostgreSQLOracleOracle
Giới hạn số lượng bản ghi
Sắp xếpCó thểCó thểCó thểCó thể
Hiệu suấtTốtTốtTốtTương đối thấp
Dễ sử dụngDễDễKhó hơnKhó hơn

 

Datalinks.vn

Hello các bạn, tôi là Dương Nguyễn (DuoDBA - https://www.youtube.com/@DuoDBA) tác giả của blog này. Mong muốn được chia sẻ kiến thức và kinh nghiệm về cơ sở dữ liệu với những người đam mê và quan tâm đến lĩnh vực này. Tôi có tổ chức các khoá Coaching về #OracleDatabase và luyện thi #OCP thường xuyên, các bạn muốn có người đồng hành thì alo tôi nhé. Call/Zalo: 0765 871 888. Thanks you !.....
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