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. 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)
Kết luận
Vậy là chúng ta lại đi xong một câu lệnh nữa trong sql. Hy vọng rằng có thể tiếp thêm nhiều kiến thức cho các bạn. Cùng đón chờ các bài viết tiếp theo của tôi nhé.