SQL 1-7. 중복 행
관련링크
본문
질의는 기본적으로 중복 행을 포함한 모든 행을 표시합니다.
오라클 디비 예제 :
SELECT department_id FROM employees;
MSSQL 디비예제 :
SELECT title_id FROM sales
특별히 표시하지 않는 한 중복 행을 제거하지 않은 상태로 질의 결과를 표시한다.
예제는 EMPLOYEES테이블의 모든 부서 번호를 표시하며 부서 번호가 반복되어 있음을 볼 수 있다.
중복 행 제거
SELECT절에서 DISTINCT 키워드를 사용하여 중복 행을 제거한다.
오라클 디비 예제 :
SELECT DISTINCT department_id FROM employees;
MSSQL 디비 예제 :
SELECT distinct title_id FROM sales
결과에서 중복 행을 제거하려면 SELECT절에서 SELECT키워드 바로 다음에 DISTINCT키워드를 넣어야 한다.
예제에서 EMPLOYEES테이블에는 실제로 행이 20개 포함되어 있지만 고유한 부서 번호는 7개뿐이다.
DISTINCT수식자 다음에 여러 열을 지정할 수 있다.
DISTINCT수식자는 선택한 모든 열에 영향을 주므로 결과에는 모든 가능한 열 조합 중 고유한 열 조합이 모두 표시 된다.
오라클 디비 예제 :
SELECT DISTINCT department_id, job_id FROM employees;
MSSQL 디비 예제 :
SELECT distinct title_id, qty FROM sales
-- 두개의 컬럼의 값이 같은 행이 있 을 경우 중복행 제거
참고] SELECT title_id, distinct qty FROM sales
오류 : qty열만 중복행이 제거 되므로 두열의 출력되는 행이 달라져 오류 발생