Lệnh SELECT TOP được dùng để lấy dữ liệu từ 1 hay nhiều bảng trong SQL SERVER và trả về các dữ liệu được giới hạn dựa trên % cố định hoặc giá trị
Mục lục
- 1 1. Cú pháp lệnh SELECT TOP trong lập trình dữ liệu cấu trúc SQL Server
- 2 2. Tên biến (hoặc giá trị biến)
- 3 Ví dụ cách dùng SELECT TOP trong SQL SERVER
- 4 Sử dụng từ khóa TOP PERCENT
- 5 Một số cách dùng phổ biến của mệnh đè TOP SQL Server
- 6 Có thể kết hợp SELECT TOP với GROUP BY trong SQL không?
- 7 Kết luận
1. Cú pháp lệnh SELECT TOP trong lập trình dữ liệu cấu trúc SQL Server
SELECT TOP (giatridau) [PERCENT] [WITH TIES] bieu_thuc FROM bang [WHERE dieukien] [ORDER BY bieuthuc [ ASC | DESC ]];
2. Tên biến (hoặc giá trị biến)
Biến TOP
TOP (giatridau), lệnh trả về kết quả dựa trên giatridau. Ví dụ TOP(1) sẽ chèn 1 hàng đầu tiên từ kết quả, đây cũng có thể gọi là Select top 1 trong SQL.
Ví dụ thực tế:
SELECT TOP(10) nhanvien_id, ho, ten FROM nhanvien WHERE ho = ‘LÊ’ ORDER BY nhanvien_id;
Lệnh này sẽ lấy 10 dữ liệu đầu tiên trong bảng nhanvien có họ là LÊ. Khi đã lấy đủ 5 dữ liệu thì những dữ liệu khác dù có họ LÊ cũng không được xuất hiện.
Nếu thêm mệnh đề WITH TIES
SELECT TOP(10) WITH TIES nhanvien_id, ho, ten FROM nhanvien WHERE ho = ‘LÊ’ ORDER BY nhanvien_id;
Ví dụ này sẽ trả về các hàng giống với hàng cuối trong bộ kết quả.
Biến PERCENT
Tùy chọn. Nếu sử dụng kết quả trả về sẽ dựa trên % của giatridau. Ví dụ TOP(5) PERCENT sẽ chèn 5% giá trị đầu trong bộ kết quả.
Ví dụ thực tế:
SELECT TOP(20) PERCENT nhanvien_id, ho, ten FROM nhanvien WHERE ho = ‘LÊ’ ORDER BY nhanvien_id;
Ví dụ này sẽ trả về bộ kết quả đúng 20% đầu tiên trong bảng nhanvien trong số các nhân viên có họ là LÊ. 80% còn lại sẽ không được trả về.
Thêm hàm WITH TIES ta có:
SELECT TOP(20) PERCENT WITH TIES nhanvien_id, ho, ten FROM nhanvien WHERE ho = ‘LÊ’ ORDER BY nhanvien_id;
Kết quả trả về sẽ có các hàng giống với hàng cuối trong bộ kết quả. Bộ kết quả khi đó sẽ nhiều hơn 20%.
Biến WITH TIES
Tùy chọn. Sử dụng nếu các hàng cuối trong kết quả có giá trị giống với các hàng. Xảy ra khi số hàng trả về nhiều hơn biến TOP
bieuthuc
Cột hoặc giá trị muốn lấy về
bang
Bảng muốn lấy bản ghi từ đó. Phải có ít nhất 1 bảng trong mệnh đề FROM.
Biến WHERE
Điều kiện áp dụng để bản ghi được chọn.
Biến ORDER BY
Dùng để sắp xếp các kết quả trả về theo thứ tự tăng hoặc giảm (ASC hoặc DESC)
Ví dụ cách dùng SELECT TOP trong SQL SERVER
Dùng từ khóa TOP
SELECT TOP(5) nhanvien_id, ho, ten FROM nhanvien WHERE ho = 'Anderson' ORDER BY nhanvien_id;
Lấy ví dụ, lệnh SELECT sẽ chỉ trả về 5 bản ghi đầu tiên từ bảng nhanvien với họ là ‘Anderson’. Nếu trong bảng có nhiều hơn 5 bản ghi khác cũng có họ ‘Anderson’, chúng sẽ không được bao gồm trong kết quả trả về
SELECT TOP(5) WITH TIES nhanvien_id, ho, ten FROM nhanvien WHERE ho = 'Anderson' ORDER BY nhanvien_id;