Computer >> 컴퓨터 >  >> 프로그래밍 >> SQL Server

SQL Server DISTINCT 절 완벽 정리 – 중복 데이터 제거 방법과 활용 예제

SQL Server의 DISTINCT 절이란?

SQL Server(Transact-SQL)에서 DISTINCT 절은 조회 결과 집합에서 중복된 값을 제거하는 데 사용됩니다. DISTINCT 절은 SELECT 문에서만 사용할 수 있다는 점을 기억해야 합니다.

DISTINCT 절 기본 문법

SELECT DISTINCT 표현식
FROM 테이블
[WHERE 조건];

매개변수 설명

표현식(expression)

조회하고자 하는 열(column) 또는 계산된 값입니다.

테이블(table)

레코드를 조회할 대상 테이블입니다. FROM 절에는 반드시 하나 이상의 테이블이 포함되어야 합니다.

WHERE 조건

선택 사항입니다. 레코드가 선택되기 위해 충족해야 하는 조건을 지정합니다.

DISTINCT 절 사용 시 주의사항

  1. DISTINCT 절에 표현식이 하나만 있는 경우, 쿼리는 해당 표현식의 고유한 값들만 반환합니다.
  2. DISTINCT 절에 표현식이 두 개 이상 있는 경우, 쿼리는 여러 표현식의 고유한 조합을 반환합니다.

또한 SQL Server에서 DISTINCT 절은 NULL 값을 무시하지 않습니다. 따라서 이 절을 사용한 쿼리의 결과에는 고유한 NULL 값 하나가 함께 포함될 수 있습니다.

예제 1 – 단일 표현식 사용

SQL Server에서 DISTINCT 절을 사용하는 가장 간단한 형태는 표현식이 하나뿐인 경우입니다.

SELECT DISTINCT ho
FROM nhanvien
WHERE nhanvien_id >= 50;

이 예제는 직원 ID(nhanvien_id)가 50보다 크거나 같은 직원들의 성(ho) 값을 중복 없이 반환합니다.

예제 2 – 다중 표현식 사용

SELECT DISTINCT ten, ho
FROM nhanvien
WHERE nhanvien_id >= 50
ORDER BY ho;

이 예제에서는 직원 ID가 50보다 크거나 같은 레코드를 대상으로 이름(ten)과 성(ho)의 고유한 조합을 반환합니다. 결과는 성(ho)을 기준으로 오름차순 정렬됩니다.

여기서 중요한 점은 DISTINCT가 키워드 뒤에 나오는 모든 열에 동시에 적용된다는 것입니다. 즉, 이름과 성의 조합이 서로 다른 경우에만 별도의 행으로 결과에 포함됩니다.