Computer >> Máy Tính >  >> Lập trình >> SQL Server

Lệnh CHỌN HÀNG ĐẦU trong SQL Server

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] [WIT H 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 TO P(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

  SELEC T 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 TO P(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%.