Từ khóa distinct được sử dụng cùng với mệnh đề SELECT. Sẽ rất hữu ích khi cần tránh các giá trị trùng lặp trong bất kỳ cột / bảng cụ thể nào. Khi chúng ta sử dụng từ khóa distinct, chỉ các giá trị duy nhất được tìm nạp.
Cú pháp
SELECT DISTINCT column1, column2 FROM table_name
- column1, column2 : Tên các trường của bảng.
- table_name: Bảng từ nơi chúng ta muốn tìm nạp các bản ghi.
Truy vấn này sẽ trả về tất cả các kết hợp duy nhất của các hàng trong bảng với các trường column1, column2.
LƯU Ý: Nếu từ khóa khác biệt được sử dụng với nhiều cột, thì chúng sẽ được kết hợp lại. Sẽ có không trường hợp có 2 dòng dữ liệu trùng lặp tất cả các cột được liệt kê trong distinct.
Table – Student
ROLL_NO | NAME | ADDRESS | PHONE | AGE |
1 | RAM | DELHI | XXXXXXXXXX | 18 |
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
4 | SURESH | DELHI | XXXXXXXXXX | 18 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
Ví dụ lấy tên của tất cả các học sinh trong database, bỏ qua các tên trùng lặp.
SELECT DISTINCT NAME FROM Student;
Output :
NAME |
---|
Ram |
RAMESH |
SUJIT |
SURESH |
Ví dụ lấy distinct kết hợp nhiều cột, trong đây mình sẽ lấy unique cho toàn bộ các cột
SELECT DISTINCT * FROM Student;
Output :
ROLL_NO | NAME | ADDRESS | PHONE | AGE |
---|---|---|---|---|
1 | Ram | Delhi | XXXXXXXXXX | 18 |
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
4 | SURESH | Delhi | XXXXXXXXXX | 18 |
Ví dụ distinct kết hợp 2 cột Address và Age
SELECT DISTINCT Address, Age FROM Student;
Output
ADDRESS | AGE |
Delhi | 18 |
GURGAON | 18 |
ROHTAK | 18 |
Nguồn tham khảo
https://www.geeksforgeeks.org/sql-distinct-clause/