07/05/2018, 15:13

Từ khóa DISTINCT trong SQL

Từ khóa DISTINCT trong SQL được sử dụng kết hợp với lệnh SELECT để loại tất cả các bản sao của bản ghi và chỉ lấy các bản ghi duy nhất. Có thể có tình huống bạn có nhiều bản sao của bản ghi trong một bảng. Trong khi lấy các bản ghi này, nó là hợp lý khi chỉ lấy bản ghi duy nhất thay ...

Từ khóa DISTINCT trong SQL được sử dụng kết hợp với lệnh SELECT để loại tất cả các bản sao của bản ghi và chỉ lấy các bản ghi duy nhất.

Có thể có tình huống bạn có nhiều bản sao của bản ghi trong một bảng. Trong khi lấy các bản ghi này, nó là hợp lý khi chỉ lấy bản ghi duy nhất thay vì lấy nhiều bản sao của bản ghi đó.

Cú pháp

Cú pháp cơ bản của từ khóa DISTINCT để loại bỏ các bản sao của bản ghi là như sau:

SELECT DISTINCT cot1, cot2,.....cotN 
FROM ten_bang
WHERE [dieu_kien]

Ví dụ

Bảng SINHVIEN có các bản ghi sau:

+----+---------+-----+-----------+--------+
| ID |  TEN    | TUOI|  KHOAHOC  | HOCPHI |
+----+---------+-----+-----------+---------+
|  1 | Hoang   |  21 | CNTT      | 4       |
|  2 | Viet    |  19 | DTVT      | 3     |
|  3 | Thanh   |  18 | KTDN      |  4      |
|  4 | Nhan    |  19 | CK        |   4.5   |
|  5 | Huong   |  20 | TCNH      |   5     |
+----+---------+-----+-----------+---------+

Đầu tiên, chúng ta xem cách truy vấn SELECT trả về bản sao của HOCPHI:

SQL> SELECT HOCPHI FROM SINHVIEN
     ORDER BY HOCPHI;

Trong kết quả thu được, HOCPHI 4 xuất hiện 2 lần, mà là một bản sao bản ghi từ bảng ban đầu.

+----------+
| HOCPHI   |
+----------+
|  4 |
|  3 |
|  4 |
|  4.5 |
|  5 |
+----------+

Bây giờ, sử dụng từ khóa DISTINCT với truy vấn SELECT trên và theo dõi kết quả:

SQL> SELECT DISTINCT HOCPHI FROM SINHVIEN
     ORDER BY HOCPHI;

Trong kết quả thu được, chúng ta sẽ thấy không có bất kỳ bản sao nào.

+----------+
| HOCPHI   |
+----------+
|  4 |
|  5 |
|  4.5 |
|  5 |
+----------+
0