코딩 이야기/MS SQL

MSSQL UNION 사용 방법

안개소리 2025. 3. 31. 09:53

UNION 종류 및 정렬 방법

UNION

설명 : 두 개 이상의 SELECT 문의 결과 집합을 결합하고 중복 행을 제거합니다.

 

예제 :

    -- 부서별 사원 목록과 직책별 사원 목록을 결합 (중복 제거)
    SELECT employee_id, first_name, last_name, department_id
    FROM employees
    WHERE department_id IS NOT NULL
    UNION
    SELECT employee_id, first_name, last_name, NULL AS department_id
    FROM employees
    WHERE job_id = 'IT_PROG';
  

UNION ALL

설명 : 두 개 이상의 SELECT 문의 결과 집합을 결합하지만 중복 행을 제거하지 않습니다.

 

예제 :

    -- 부서별 사원 목록과 직책별 사원 목록을 결합 (중복 포함)
    SELECT employee_id, first_name, last_name, department_id
    FROM employees
    WHERE department_id IS NOT NULL
    UNION ALL
    SELECT employee_id, first_name, last_name, NULL AS department_id
    FROM employees
    WHERE job_id = 'IT_PROG';
  

정렬 방법 (ORDER BY)

설명 : UNION 또는 UNION ALL 결과 집합을 특정 열을 기준으로 정렬합니다.

         정렬은 최종 결과에 적용됩니다.

 

예제 :

    -- 결합된 결과 집합을 last_name 기준으로 오름차순 정렬
    SELECT employee_id, first_name, last_name, department_id
    FROM employees
    WHERE department_id IS NOT NULL
    UNION
    SELECT employee_id, first_name, last_name, NULL AS department_id
    FROM employees
    WHERE job_id = 'IT_PROG'
    ORDER BY last_name;

    -- 결합된 결과 집합을 department_id 기준으로 내림차순 정렬
    SELECT employee_id, first_name, last_name, department_id
    FROM employees
    WHERE department_id IS NOT NULL
    UNION ALL
    SELECT employee_id, first_name, last_name, NULL AS department_id
    FROM employees
    WHERE job_id = 'IT_PROG'
    ORDER BY department_id DESC;