Lệnh SELECT TOP trong SQL
Trong SQL, lệnh SELECT TOP được sử dụng để lấy ra N bản ghi hoặc X phần trăm bản ghi từ một bảng. Ở bài viết này sẽ hướng dẫn chi tiết cho bạn cách sử dụng câu lệnh TOP trong SQL với cú pháp và những ví dụ cụ thể để dễ hình dung và nắm bắt hàm tốt hơn.
Lưu ý: Không phải tất cả các Database đều hỗ trợ mệnh đề TOP. Ví dụ như MySQL hỗ trợ mệnh đề LIMIT để lấy ra số lượng hạn chế các bản ghi, trong khi Oracle sử dụng lệnh ROWNUM và FETCH FIRST n ROWS ONLY để thực hiện cùng thao tác này.
Mệnh đề SELECT TOP hữu ích trên các bảng lớn với hàng nghìn bản ghi; Việc trả lại một số lượng lớn bản ghi có thể ảnh hưởng đến hiệu suất.
Cú pháp lệnh TOP trong SQL
Cú pháp lệnh TOP trong SQL Server / MS Access:
SELECT TOP so_ban_ghi | phan_tram ten_cot (có thể nhiều cột)
FROM ten_bang
WHERE [dieu_kien]Cú pháp lệnh TOP trong MySQL:
SELECT ten_cot (có thể nhiều cột)
FROM ten_bang
WHERE [dieu_kien]
LIMIT so_luong;Cú pháp lệnh TOP trong Oracle 12:
SELECT ten_cot (có thể nhiều cột)
FROM ten_bang
ORDER BY ten_cot (có thể nhiều cột)
FETCH FIRST so_luong ROWS ONLY;Cú pháp lệnh TOP trong Oracle cũ hơn:
SELECT ten_cot (có thể nhiều cột)
FROM ten_bang
WHERE ROWNUM <= so_luong;Cú pháp Oracle cũ hơn (với ORDER BY):
SELECT *
FROM (SELECT ten_cot(s) FROM ten_bang ORDER BY ten_cot)
WHERE ROWNUM <= so_luong;Ví dụ về SQL TOP, LIMIT và FETCH FIRST
Giả sử bảng NHANVIEN có các bản ghi như sau:
+----+----------+-----+-----------+----------+ | ID | TEN |TUOI | DIACHI | LUONG | +----+----------+-----+-----------+----------+ | 1 | Thanh | 32 | Haiphong | 2000.00 | | 2 | Loan | 25 | Hanoi | 1500.00 | | 3 | Nga | 23 | Hanam | 2000.00 | | 4 | Manh | 25 | Hanoi | 6500.00 | | 5 | Huy | 27 | Hanoi | 8500.00 | | 6 | Cao | 22 | HCM | 4500.00 | | 7 | Lam | 24 | Hanoi | 10000.00 | +----+----------+-----+-----------+----------+
Đề bài đưa ra là danh sách 3 nhân viên đầu tiên trong bảng NHANVIEN. Câu lệnh tương ứng sẽ như sau:
Trên SQL Server/MS Access:
SELECT TOP 3 * FROM NHANVIEN;Trên MySQL:
ELECT * FROM NHANVIEN
LIMIT 3;Trên Oracle:
SELECT * FROM NHANVIEN
FETCH FIRST 3 ROWS ONLY;hoặc
SELECT * FROM NHANVIEN
WHERE ROWNUM <= 3;Kết quả trả về tương tự nhau theo cả 3 trường hợp trên sẽ là:
+----+----------+-----+-----------+----------+ | ID | TEN |TUOI | DIACHI | LUONG | +----+----------+-----+-----------+----------+ | 1 | Thanh | 32 | Haiphong | 2000.00 | | 2 | Loan | 25 | Hanoi | 1500.00 | | 3 | Nga | 23 | Hanam | 2000.00 | +----+----------+-----+-----------+----------+
Ví dụ về SQL TOP PERCENT
Đề bài đưa ra: Hiển thị danh sách 50% người đầu tiên trong bảng NHANVIEN. Cú pháp tương ứng sẽ như sau:
Trên SQL Server/MS Access:
SELECT TOP 50 PERCENT * FROM NHANVIEN;
Trên Oracle:
SELECT * FROM NHANVIEN
FETCH FIRST 50 PERCENT ROWS ONLY;Cả 2 câu lệnh đều cho ra kết quả như bảng sau:
+----+----------+-----+-----------+----------+ | ID | TEN |TUOI | DIACHI | LUONG | +----+----------+-----+-----------+----------+ | 1 | Thanh | 32 | Haiphong | 2000.00 | | 2 | Loan | 25 | Hanoi | 1500.00 | | 3 | Nga | 23 | Hanam | 2000.00 | | 4 | Manh | 25 | Hanoi | 6500.00 | +----+----------+-----+-----------+----------+
Ví dụ TOP kết hợp với WHERE
Đề bài đưa ra là tìm 3 người đầu tiên trong danh sách NHANVIEN có DIACHI tại Hanoi. Câu lệnh tương ứng sẽ như sau:
Trên SQL Server/MS Access:
SELECT TOP 3 * FROM NHANVIEN
WHERE DIACHI='Hanoi';Trên MySQL:
SELECT * FROM NHANVIEN
WHERE DIACHI='Hanoi'
LIMIT 3;Trên Oracle:
SELECT * FROM NHANVIEN
WHERE DIACHI='Hanoi'
FETCH FIRST 3 ROWS ONLY;Trong phần tiếp theo, chúng ta sẽ tìm hiểu về câu lệnh ORDER BY, các bạn nhớ theo dõi nhé.
Bạn nên đọc
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:
Cũ vẫn chất
-

60+ Câu đố về quả giúp trẻ rèn luyện tư duy
2 ngày -

999+ Stt thả thính, cap thả thính hay ❣ những câu thả thính dễ thương
2 ngày 30 -

Những stt về mưa hay nhất, câu nói hay về mưa
2 ngày -

Sự khác nhau của tên gọi đồ vật, cách xưng hô giữa các miền
2 ngày 2 -

Những câu nói về hôn nhân, tình cảm vợ chồng hay, đáng suy ngẫm
2 ngày -

Cách xóa công cụ tìm kiếm Yahoo khỏi Chrome
2 ngày 16 -

Cách sử dụng lịch sử Clipboard trong Windows 10
2 ngày -

Toán tử trong lập trình C
2 ngày 1 -

‘Từ điển’ tiếng Huế thông dụng
2 ngày -

Lời chúc mở hàng đầu năm mới, lời chúc khai trương đầu năm mới 2025
2 ngày
Học IT
Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Hướng dẫn
Ô tô, Xe máy