Lọc dữ liệu trùng với DISTINCT trong SQL - Ngôn ngữ truy vấn T-SQL
Đôi khi có những câu truy vấn có kết quả bị trùng lặp thì lúc này ta lại muốn loại bỏ dữ liệu bị trùng đó và chỉ giữ lại một record duy nhất mà thôi. Để làm được việc này thì ta sử dụng lệnh DISTINCT. 1. Cú pháp lệnh DISTINCT Trước tiên bạn tham khảo cú pháp như sau: ...
Đôi khi có những câu truy vấn có kết quả bị trùng lặp thì lúc này ta lại muốn loại bỏ dữ liệu bị trùng đó và chỉ giữ lại một record duy nhất mà thôi. Để làm được việc này thì ta sử dụng lệnh DISTINCT.
1. Cú pháp lệnh DISTINCT
Trước tiên bạn tham khảo cú pháp như sau:
SELECT DISTINCT column_list FROM table_name
Như vậy ta chỉ cần đặt DISTINCT kế lệnh SELECT.
2. Lệnh DISTINCT lọc dữ liệu bị trùng
DISTINCT có công dụng là xóa đi những dòng dữ liệu trùng nhau và chỉ để lại một dòng duy nhất. Dữ liệu trùng nhau là phải giống ở mọi column, dù khác chỉ 1 column thôi cũng không được gọi là trùng nhau.
Giả sử ta có bảng dữ liệu như sau:
ID NAME AGE ADDRESS SALARY 1 Ramesh 32 Ahmedabad 2000.00 2 Khilan 25 Delhi 1500.00 3 kaushik 23 Kota 2000.00 4 Chaitali 25 Mumbai 6500.00 5 Hardik 27 Bhopal 8500.00 6 Komal 22 MP 4500.00 7 Muffy 24 Indore 10000.00
Nhìn vào bảng thì ta thấy khóa chính là ID và nó tăng tự động nên chắc chắn là dữ liệu ở mỗi record sẽ không bị trùng. Tuy nhiên bạn hãy xét ví dụ sau đây: hãy lấy danh sách mức tiền của các khách hàng và chỉ trả về mỗi cột SALARY mà thôi. Lúc này rõ ràng dữ liệu sẽ bị trùng.
SELECT SALARY FROM CUSTOMERS ORDER BY SALARY
SALARY 1500.00 2000.00 2000.00 4500.00 6500.00 8500.00 10000.00
Để giải quyết ta sử dụng DISTINCT như sau:
SELECT DISTINCT SALARY FROM CUSTOMERS ORDER BY SALARY
Kết quả trả về sẽ như sau:
SALARY 1500.00 2000.00 4500.00 6500.00 8500.00 10000.00
Lệnh này tương đối đơn giản nên nội dung cũng không có gì nhiều.