Loại bỏ trùng lặp
Mặc dù các hàng trong bảng phải luôn duy nhất, nhưng khi bạn chỉ chọn một tập hợp con của các cột, các hàng kết quả có thể không phải là duy nhất ngay cả khi các hàng ban đầu là duy nhất. Ví dụ: bạn có thể có một bảng nhà cung cấp với yêu cầu là thành phố và tiểu bang (hoặc tỉnh) là duy nhất để không bao giờ có nhiều nhà cung cấp ở bất kỳ thành phố nào. Tuy nhiên, nếu bạn chỉ muốn xem các thành phố và quốc gia/khu vực có nhà cung cấp, kết quả trả về có thể không phải là duy nhất. Giả sử bạn viết truy vấn sau đây:
SELECT City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;
Truy vấn này có thể trả về kết quả tương tự như sau:
Thành phố
Khu vực Quốc gia
Aurora
Canada
Barrie
Canada
Brampton
Canada
Brossard
Canada
Brossard
Canada
Burnaby
Canada
Burnaby
Canada
Burnaby
Canada
Calgary
Canada
Calgary
Canada
...
...
Theo mặc định, mệnh đề SELECT bao gồm một từ khóa ALL ngầm dẫn đến hành vi này:
SELECT ALL City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;
T-SQL cũng hỗ trợ một từ khóa DISTINCT thay thế để loại bỏ mọi hàng kết quả trùng lặp:
SELECT DISTINCT City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;
Khi sử dụng DISTINCT, ví dụ chỉ trả về một trong mỗi tổ hợp giá trị duy nhất trong danh sách SELECT:
Thành phố
Khu vực Quốc gia
Aurora
Canada
Barrie
Canada
Brampton
Canada
Brossard
Canada
Burnaby
Canada
Calgary
Canada
...
...