SQL Limiting Rows – Lấy giới hạn số hàng trả về trong truy vấn SQL

Trong SQL, việc giới hạn số hàng trả về từ một câu truy vấn là một kỹ thuật quan trọng để quản lý dữ liệu, tối ưu hóa hiệu suất và tránh trả về quá nhiều dữ liệu không cần thiết. Các từ khóa và phương pháp để giới hạn số hàng trả về có thể khác nhau giữa các hệ quản trị cơ sở dữ liệu (DBMS) như MySQL, PostgreSQL, SQL Server và Oracle.

SQL Limiting Rows – Lấy giới hạn số hàng trả về trong truy vấn SQL

MySQL và PostgreSQL

Trong MySQL và PostgreSQL, bạn có thể sử dụng từ khóa LIMIT để giới hạn số hàng trả về.

SELECT *
FROM Employees
LIMIT 10;

Câu truy vấn này sẽ trả về 10 hàng đầu tiên từ bảng Employees.

Bạn cũng có thể sử dụng LIMIT với OFFSET để bỏ qua một số hàng trước khi bắt đầu trả về kết quả.

SELECT *
FROM Employees
LIMIT 10 OFFSET 5;

Câu truy vấn này sẽ bỏ qua 5 hàng đầu tiên và trả về 10 hàng kế tiếp từ bảng Employees.

SQL Server

Trong SQL Server, bạn có thể sử dụng từ khóa TOP để giới hạn số hàng trả về.

SELECT TOP 10 *
FROM Employees;

Câu truy vấn này sẽ trả về 10 hàng đầu tiên từ bảng Employees.

SQL Server 2012 trở lên cũng hỗ trợ từ khóa OFFSET-FETCH để cung cấp chức năng tương tự như LIMIT-OFFSET trong MySQL và PostgreSQL.

SELECT *
FROM Employees
ORDER BY EmployeeID
OFFSET 5 ROWS
FETCH NEXT 10 ROWS ONLY;

Câu truy vấn này sẽ bỏ qua 5 hàng đầu tiên và trả về 10 hàng kế tiếp từ bảng Employees, sắp xếp theo EmployeeID.

Oracle

Trong Oracle, bạn có thể sử dụng từ khóa ROWNUM hoặc từ Oracle 12c trở đi, bạn có thể sử dụng FETCH FIRST.

Sử dụng ROWNUM:

SELECT *
FROM Employees
WHERE ROWNUM <= 10;

Câu truy vấn này sẽ trả về 10 hàng đầu tiên từ bảng Employees.

Sử dụng FETCH FIRST:

SELECT *
FROM Employees
ORDER BY EmployeeID
FETCH FIRST 10 ROWS ONLY;

Câu truy vấn này sẽ trả về 10 hàng đầu tiên từ bảng Employees, sắp xếp theo EmployeeID.

Như vậy:

Tùy vào hệ quản trị cơ sở dữ liệu bạn đang sử dụng, bạn có thể chọn phương pháp phù hợp để giới hạn số hàng trả về. Dưới đây là một bản tóm tắt nhanh:

  • MySQL và PostgreSQL: LIMIT
  • SQL Server: TOP hoặc OFFSET-FETCH
  • Oracle: ROWNUM hoặc FETCH FIRST

Chúc anh em get data thành công.

 

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