SQL Server

SELECT DISTINCT trong SQL – Câu lệnh trả về các giá trị duy nhất

SELECT DISTINCT trong SQL là một câu lệnh rất phổ biến, giúp giảm số lượng bản ghi trả về trong một số trường hợp. Trong bài viết hôm nay, mình sẽ chia sẻ với các bạn về câu lệnh DISTINCT trong SQL Server.

1/ Mô tả

Câu lệnh SELECT DISTINCT trong SQL được dùng để lấy giá trị không trùng lặp trong SQL. Mệnh đề DISTINCT sẽ lấy ra các giá trị riêng biệt, duy nhất, loại bỏ các giá trị trùng lặp trong kết quả trả về. 

Một điều những bạn mới tìm hiểu cần lưu ý đó chính là câu lệnh DISTINCT trong SQL chỉ đi kèm với câu lệnh SELECT.

2/ Cú pháp

Câu lệnh DISTINCT trong SQL có cú pháp đơn giản:

SELECT DISTINCT column 1, column 2, …

FROM table_name

Lưu ý:

Khi chỉ có một column được chọn thì kết quả trả về khi dùng mệnh đề SELECT DISTINCT trong SQL là các giá trị duy nhất trong cột đó.

Trường hợp có từ 2 cột trở lên thì kết quả trả về sẽ là các giá trị duy nhất của các cột được chọn.

Mệnh đề DISTINCT trong SQL Server không bỏ qua giá trị NULL nên kết quả trả về sẽ bao gồm cả giá trị NULL duy nhất.

3/ Cách dùng SELECT DISTINCT trong SQL

Trong phần hướng dẫn cách sử dụng mệnh đề DISTINCT thì mình chia ra ví dụ cơ bản cũng như các ví dụ nâng cao hơn khi kết hợp với các câu lệnh SQL khác.

SELECT DISTINCT nhiều cột

Bạn có thể lọc giá trị trùng trong một cột hoặc khi chọn nhiều cột. Để hiểu rõ cách sử dụng DISTINCT kết hợp với câu lệnh SELECT trong SQL thì mình đã có chuẩn bị bảng ví dụ sau đây.

Bảng tên Customer gồm có 4 cột: Customer Name, Customer City, Customer State, Customer Source.

Bảng ví dụ Customer gồm Customer Name, Customer City, Customer State, Customer Source

Bảng ví dụ Customer gồm Customer Name, Customer City, Customer State, Customer Source

Nếu sử dụng câu lệnh SELECT bình thường thì ta sẽ có kết quả sau đây

Cú pháp:

SELECT Customer Name, Customer Source

FROM Customer

Sử dụng câu lệnh SELECT không thì kết quả sẽ có nhiều giá trị trùng lặp

Sử dụng câu lệnh SELECT không thì kết quả sẽ có nhiều giá trị trùng lặp

Như bạn đã thấy thì trong kết quả trả về của 2 cột Customer Name và Customer Source có rất nhiều giá trị bị trùng lặp nhau.

Để lọc ra các giá trị duy nhất trong từng cột thì bạn cần dùng câu lệnh DISTINCT nhiều cột.

Cú pháp

SELECT DISTINCT Customer Name, Customer Source

FROM Customer

Sử dụng câu lệnh SELECT DISTINCT trong SQL sẽ chỉ còn hiện các giá trị duy nhất

Sử dụng câu lệnh DISTINCT SQL sẽ chỉ còn hiện các giá trị duy nhất

Các kết quả trả về giờ đây đã là giá trị duy nhất của mỗi cột.

DISTINCT khi chọn một cột

Cú pháp:

SELECT DISTINCT Customer Source

FROM Customer

Sử dụng DISTINCT trong SQL cho một cột

Sử dụng DISTINCT trong SQL cho một cột

SELECT DISTINCT ORDER BY

Câu lệnh ORDER BY trong SQL sử dụng phổ biến. Cũng lấy bảng ví dụ trên ta có cú pháp DISTINCT  kết hợp với ORDER BY như sau.

Cú pháp:

SELECT DISTINCT Customer Name, Customer Source

FROM Customer

ORDER BY Customer Name ASC

SELECT DISTINCT kết hợp với ORDER BY

Câu lệnh DISTINCT kết hợp với ORDER BY

Như bạn thấy trong kết quả thì các giá trị trong cột Customer Source đã được sắp xếp theo thứ tự tăng dần. Nếu bạn muốn sắp xếp từ Z – A thì chọn DESC (thay thế vào vị trí ASC).

SELECT DISTINCT COUNT

Một cách sử dụng nâng cao hơn là kết hợp với hàm COUNT trong SQL. Nếu như cú pháp sau đây trả về kết quả là các Customer Source duy nhất 

SELECT DISTINCT Customer Source

FROM Customer

Thì khi kết hợp cới hàm COUNT sẽ hiện ra kết quả là giá trị tổng sau khi đếm được có bao nhiêu Customer Source.

Cú pháp COUNT(DISTINCT trong SQL) sẽ được chia sẻ ở những bài viết tới trên website Kienit.

Cú pháp:

SELECT COUNT (DISTINCT Customer Source)

FROM Customer

Sử dụng SELECT DISTINCT COUNT

Câu lệnh DISTINCT kết hợp với hàm COUNT trong SQL

Việc biết ứng dụng mệnh đề SQL DISTINCT sẽ giúp bạn rất nhiều trong việc tính toán thống kê dữ liệu một cách chính xác vì đã loại bỏ được các giá trị trùng nhau.

Bài viết đã chia sẻ đầy đủ cách sử dụng SELECT DISTINCT trong SQL. Hy vọng các thông tin trong bài này sẽ giúp ích cho các bạn. Hãy theo dõi website Kienit.com để đọc thêm các bài viết SQL mới nhất.

What is your reaction?

Excited
0
Happy
0
In Love
0
Not Sure
0
Silly
0
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