중복 항목 제거
테이블의 행은 항상 고유해야 하지만 열의 하위 집합만 선택하는 경우 원본 행이 고유하더라도 결과 행은 고유하지 않을 수 있습니다. 예를 들어 어느 도시에도 둘 이상의 공급업체가 없도록 구/군/시 및 시/도가 고유해야 한다는 요구 사항이 있는 공급업체 테이블이 있을 수 있습니다. 하지만 공급업체가 있는 도시 및 국가/지역을 확인하려는 경우 반환된 결과가 고유하지 않을 수 있습니다. 다음 쿼리를 작성한다고 가정합니다.
SELECT City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;
이 쿼리는 다음과 같은 결과를 반환할 수 있습니다.
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 목록에서 각각의 고유한 값 조합 중 하나만 반환합니다.
City
CountryRegion
오로라
캐나다
배리
캐나다
브램턴
캐나다
브로사드
캐나다
버너비
캐나다
캘거리
캐나다
...
...