본문 바로가기

db/oracle

union all union 차이점

반응형

오라클에서 [UNION ALL]은 중복을 제거하지 않습니다. 중복을 제거하려면 [UNION]을 사용해야 합니다.

UNION과 UNION ALL의 차이점

UNION

  • 두 개 이상의 SELECT 문의 결과를 결합합니다.
  • 중복되는 행을 자동으로 제거합니다.
  • 중복을 확인하고 제거하는 과정 때문에 UNION ALL보다 처리 속도가 느립니다.
  • 예시
SELECT employee_id FROM employees
UNION
SELECT employee_id FROM retired_employees;

※ 이 쿼리는 employees 테이블과 retired_employees 테이블에서 중복되는 employee_id를 하나만 남기고 모두 합쳐서 보여줍니다.

 

UNION ALL

  • 두 개 이상의 SELECT 문의 결과를 결합합니다.
  • 중복되는 행을 제거하지 않고 모두 포함시킵니다.
  • 별도의 중복 제거 과정이 없으므로 UNION보다 처리 속도가 빠릅니다.
  • 예시
SELECT product_name FROM products_2024
UNION ALL
SELECT product_name FROM products_2025;

※ 이 쿼리는 2024년과 2025년의 상품 목록을 합칠 때, 양쪽 테이블에 모두 존재하는 상품이더라도 중복을 제거하지 않고 그대로 모두 보여줍니다.

결과

  • 중복 제거가 필요하지 않고 모든 행을 그대로 합치고 싶다면 성능이 더 좋은 UNION ALL을 사용
  • 중복된 행을 하나로 합쳐서 보고 싶다면 UNION을 사용
반응형

'db > oracle' 카테고리의 다른 글

오라클 숫자 앞에 0 추가, LPAD  (0) 2025.09.13
oracle connect by level 함수  (0) 2025.09.13
oracle ORA-32044  (0) 2025.09.13
oracle 10초 마다 저장 하기[통계]  (0) 2025.09.13
Oracle 카멜 변환 INITCAP  (0) 2025.04.05