Trong SQL Server, lệnh SELECT TOP được sử dụng để truy xuất bản ghi từ một hoặc nhiều bảng trong SQL Server và giới hạn số lượng bản ghi trả về dựa trên giá trị hoặc tỷ lệ phần trăm cố định.
Cú pháp lệnh SELECT TOP
SELECT TOP (giatri_dau) [PERCENT] [WITH TIES]
bieu_thuc
FROM bang
[WHERE dieu_kien]
[ORDER BY bieu_thuc [ ASC | DESC ]];
Tên biến hoặc giá trị biến
TOP (giatri_dau)
Trả về kết quả dựa trên giatri_dau. Ví dụ:TOP (10) sẽ chèn 10 hàng đầu tiên từ tập kết quả.
PERCENT
Tùy chọn. Nếu được chỉ định, các hàng đầu tiên dựa trên phần trăm giatri_dau của tập kết quả. Ví dụ:TOP (10) PERCENT sẽ chèn 10% giá trị đầu tiên trong tập kết quả.
CÓ TIES
Tùy chọn. Nếu mệnh đề này được sử dụng, các hàng có cùng giá trị với hàng cuối cùng trong tập kết quả sẽ được trả về. Điều này có thể dẫn đến tình huống số hàng được trả về nhiều hơn mức cho phép TOP.
bieu_thuc
Cột hoặc giá trị được tính toán phải được truy xuất
trạng thái
Bảng muốn lấy các bản ghi từ đó. Phải có ít nhất 1 bảng trong mệnh đề FROM.
WHERE dieu_kien
Tùy chọn. Các điều kiện phải được đáp ứng để bản ghi được chọn.
ĐẶT HÀNG BẰNG bieu_thuc
Tùy chọn. Sử dụng để sắp xếp kết quả. ASC theo thứ tự tăng dần, DESC theo thứ tự giảm dần.
Ví dụ:sử dụng từ khóa TOP
SELECT TOP(5)
nhanvien_id, ho, ten
FROM nhanvien
WHERE ho = 'Anderson'
ORDER BY nh
anvien_id;
Ví dụ trên sẽ lấy 5 bản ghi đầu tiên trên bảng khi họ là Anderson. Nếu các bản ghi khác cũng có họ của Anderson, chúng sẽ không được trả về trong câu lệnh SELECT.
Ví dụ trên có thể được chỉnh sửa một chút bằng cách thêm mệnh đề WITH TIES
SELECT TOP (5) WITH TIES
nhanvien_id, ho, ten
FROM nhanvien
WHERE ho = 'Anderson'
ORDER BY nhanv
ien_id;
Ví dụ này sẽ trả về các hàng giống như hàng cuối cùng trong tập kết quả.
Ví dụ:sử dụng từ khóa TOP PERCENT
SELECT TOP(10) PERCENT
nhanvien_id, ho, ten
FROM nhanvien
WHERE ho = 'Anderson'
ORDER B
Y nhanvien_id;
Ví dụ này sẽ trả về tập hợp 10% kết quả đầu tiên được ghi trong bảng nhân viên giữa những nhân viên có họ là Anderson. 90% còn lại sẽ không được trả lại.
SELECT TOP(10) PERCENT WITH TIES
nhanvien_id, ho, ten
FROM nhanvien
WHERE ho = 'Anderson'
ORDER BY nha
dentist_id;
Với WITH TIES, kết quả trả về sẽ có các hàng giống với hàng cuối cùng trong tập kết quả. Khi đó, tập hợp kết quả sẽ là hơn 10%.