Удаление дубликатов
Хотя строки в таблице всегда должны быть уникальными, при выборе только подмножества столбцов строки результатов могут не быть уникальными, даже если исходные строки являются таковыми. Например, у вас есть таблица поставщиков, в которой город и штат (или провинция) должны быть уникальными, чтобы в любом городе никогда не было больше одного поставщика. Однако если вы просто хотите видеть города и страны или регионы, в которых находятся поставщики, возвращаемые результаты могут не быть уникальными. Предположим, что вы написали следующий запрос:
SELECT City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;
Этот запрос может возвращать результаты наподобие следующих:
Город
CountryRegion
Аврора
Канада
Барри
Канада
Брамптон
Канада
Бросар
Канада
Бросар
Канада
Бернаби
Канада
Бернаби
Канада
Бернаби
Канада
Калгари
Канада
Калгари
Канада
...
...
По умолчанию предложение SELECT включает неявное ключевое слово ALL, которое приводит к следующему поведению:
SELECT ALL City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;
T-SQL также поддерживает альтернативное ключевое слово DISTINCT, которое удаляет все повторяющиеся строки результатов:
SELECT DISTINCT City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;
При использовании DISTINCT в примере возвращается только одна из уникальных комбинаций значений в списке SELECT:
Город
CountryRegion
Аврора
Канада
Барри
Канада
Брамптон
Канада
Бросар
Канада
Бернаби
Канада
Калгари
Канада
...
...