SQL - Từ khóa riêng biệt
SQL DISTINCT từ khóa được sử dụng cùng với câu lệnh SELECT để loại bỏ tất cả các bản ghi trùng lặp và chỉ tìm nạp các bản ghi duy nhất.
Có thể có một tình huống khi bạn có nhiều bản ghi trùng lặp trong một bảng. Trong khi tìm nạp các bản ghi như vậy, sẽ hợp lý hơn nếu chỉ tìm nạp các bản ghi duy nhất đó thay vì tìm nạp các bản ghi trùng lặp.
Cú pháp
Cú pháp cơ bản của từ khóa DISTINCT để loại bỏ các bản ghi trùng lặp như sau:
SELECT DISTINCT column1, column2,.....columnN
FROM table_name
WHERE [condition]
Thí dụ
Hãy xem xét bảng KHÁCH HÀNG có các bản ghi 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 |
+----+----------+-----+-----------+----------+
Trước tiên, hãy xem cách truy vấn SELECT sau đây trả về các bản ghi lương trùng lặp.
SQL> SELECT SALARY FROM CUSTOMERS
ORDER BY SALARY;
Điều này sẽ tạo ra kết quả sau, trong đó mức lương (2000) tăng gấp đôi, đây là một bản ghi trùng lặp từ bảng gốc.
+----------+
| SALARY |
+----------+
| 1500.00 |
| 2000.00 |
| 2000.00 |
| 4500.00 |
| 6500.00 |
| 8500.00 |
| 10000.00 |
+----------+
Bây giờ, chúng ta hãy sử dụng từ khóa DISTINCT với truy vấn SELECT ở trên và sau đó xem kết quả.
SQL> SELECT DISTINCT SALARY FROM CUSTOMERS
ORDER BY SALARY;
Điều này sẽ tạo ra kết quả sau đây mà chúng tôi không có bất kỳ mục nhập trùng lặp nào.
+----------+
| SALARY |
+----------+
| 1500.00 |
| 2000.00 |
| 4500.00 |
| 6500.00 |
| 8500.00 |
| 10000.00 |
+----------+