1. Câu lệnh SELECT DISTINCT

Bên trong một bảng, một cột thường chứa nhiều giá trị trùng lặp và đôi khi bạn chỉ muốn liệt kê các giá trị khác nhau (riêng biệt). Để chọn được ra những giá trị không trùng lặp ta cần sử dụng đến câu lệnh SELECT DISTINCT. Câu lệnh SELECT DISTINCT chỉ được sử dụng để trả về các giá trị riêng biệt hay khác nhau.

Cú pháp câu lệnh SELECT DISTINCT

SELECT DISTINCT column1, column2, ...
FROM table_name;

Trong đó:

  • SELECT DISTINCT là câu lệnh chọn ra các bản ghi không có giá trị trùng lặp
  • column1, column2, ...là các cột được chọn lấy ra dữ liệu
  • FROM table_name là tên bảng chứa các dữ liệu cần lấy ra

2. Ví dụ câu lệnh SELECT DISTINCT

Bảng KhachHang dưới đây bao gồm các cột:  ID, TenKH, DiaChi, ThanhPho, SoDienThoai

ID TenKH DiaChi ThanhPho SoDienThoai
1 Nguyen Van A Tay Ho Ha Noi 0888999888
2 Nguyen Van B Quan 5 Ho Chi Minh 0988988988
3 Nguyen Van C Quan 7 Ho Chi Minh 0899899899
4 Nguyen Van D Bac Tu Liem Ha Noi 0788788788
5 Nguyen Van E Ngo Quen Hai Phong 0858585858
6 Nguyen Van F Ngu Hanh Son Da Nang 0969696969
7 Nguyen Van G Tay Ho Ha Noi 0838383838

Giả sử tôi cần lấy ra tên các thành phố (không có sự trùng lặp) ở trong bảng KhachHang trên. Để làm được việc này tôi sẽ sử dụng câu lệnh SELECT DISTINCT trong cột ThanhPho bằng câu lệnh sau:

SELECT DISTINCT ThanhPho FROM KhachHang;

Kết quả thu được như sau:

ThanhPho
Da Nang
Ha Noi
Hai Phong
Ho Chi Minh

Để đếm các thành phố khác nhau trong cột ThanhPho ta sẽ sử dụng câu lệnh dưới đây:

SELECT COUNT(DISTINCT ThanhPho) FROM KhachHang;

Kết quả nhận được là: 4 bởi vì trong cột ThanhPho bao gồm các thành phố là: Da Nang, Ha Noi, Hai Phong, Ho Chi Minh