SQL Server

SELECT TOP trong SQL – Câu lệnh giới hạn số lượng dòng trả về

Ở các bài trước, Kienit đã nói về các mệnh đề liên quan đến câu lệnh SELECT. Câu lệnh SELECT TOP trong SQL là nội dung tiếp theo mình sẽ đề cập trong bài viết này.

1/ Mô tả

Lệnh SELECT TOP trong SQL có nhiệm vụ lấy dữ liệu từ một hoặc nhiều bảng và sẽ trả về số lượng bản ghi được giới hạn bởi giá trị phần trăm cố định hoặc giá trị.

Nếu như bạn muốn lấy ra top n giá trị cao nhất hoặc thấp nhất trong bảng dữ liệu thì hãy dùng câu lệnh SQL này. SELECT TOP sẽ giúp bạn giới hạn số dòng trả về như bạn mong muốn.

2/ Cú pháp

SELECT TOP giatri_dau [PERCENT] [WITH TIES] bieu_thuc

FROM bang

[WHERE dieu_kien]

[ORDER BY bieu_thuc [ ASC | DESC ]]

Trong đó:

SELECT TOP (giatri_dau) có nghĩa là lấy 10 giá trị đầu trong một bảng hoặc nhiều bảng. Ví dụ TOP 10

PERCENT có nghĩa là lấy phần trăm số lượng dòng trong bảng. Ví dụ SELECT TOP 50 PERCENT

WITH TIES có nghĩa là sẽ trả về các dòng có giá trị phù hợp với dòng cuối cùng trong kết quả trả về. Tuy nhiên sẽ trả về nhiều hàng hơn so với biến TOP bạn dùng.

Trường hợp bạn dùng WITH TIES là khi bạn lấy ra n sản phẩm có giá trị nhưng vẫn có sản phẩm khác có giá trị bằng giá trị đã lấy thì bạn dùng biến này để tránh bỏ sót.

Lưu ý: Vì các giá trị ban đầu chưa được sắp xếp theo thứ tự tăng hoặc giảm dần nên khi sử dụng lệnh này bạn nên dùng với mệnh đề ORDER BY trong SQL.

2/ Ví dụ cách dùng SELECT TOP

Sau khi đã hiểu được ý nghĩa và cú pháp thì ở phần này mình sẽ đưa ra ví dụ sử dụng SELECT TOP trong SQL cơ bản.

Dùng từ khóa TOP

Ví dụ 1: Lấy 5 dòng dữ liệu đầu tiên trong bảng HoaDon

SELECT TOP(5) * FROM HoaDon

Ví dụ 2: Lấy 3 dòng đầu tiên trong bảng Customer có điều kiện cột Country là Germany

SELECT TOP(3) * FROM Customer WHERE Country = ‘Germany’

Dùng với từ khóa TOP PERCENT

Ví dụ 1: Lấy 1/2 dòng dữ liệu trong bảng Customer

SELECT TOP(50) PERCENT * FROM Customer

Ví dụ 2: Lấy 10% dòng của cột list_price trong bảng products

SELECT TOP(10) PERCENT list_price

FROM products

ORDER BY list_price DESC

Dùng với từ khóa TOP WITH TIES

Ví dụ: 

SELECT TOP 1 WITH TIES list_price

FROM products

ORDER BY list_price DESC

Trường hợp dùng với từ khóa TOP WITH TIES rất ít. Trong ví dụ trên, nếu như ngoài 1 dòng có giá trị được lấy ra thì nếu trong nếu có dòng nào khác có giá trị bằng với dòng cuối cùng thì cũng sẽ được lấy ra. Như vậy sẽ giúp bạn không bỏ sót dữ liệu.

Bài viết trên đã chia sẻ các kiến thức cơ bảng về cách sử dụng SELECT TOP trong SQL. Hy vọng bài viết sẽ mang đến những thông tin hữu ích cho những bạn nào đang tìm hiểu về câu lệnh này.

What is your reaction?

Excited
1
Happy
1
In Love
1
Not Sure
1
Silly
1
Ti Ti
Mình tên là Trọng Thắng, hiện đang phụ trách quản lý website Kienit.com. Tất cả các bài viết trên website đều do mình tự học, tự áp dụng và biên soạn lại thành nội dung hoàn chỉnh. Hy vọng website sẽ giúp ích cho các bạn cũng đang tìm hiểu và tự học các kiến thức này giống mình.

    You may also like

    Leave a reply

    More in:SQL Server