☑️ 여러 개의 SELECT 문을 한 개의 결과(RESULT SET) 으로 출력해 주는 것
☑️ 첫번째 SELECT 문의 컬럼수와 이후 SELECT 문의 컬럼수가 같아야 한다.
☑️ 각 컬럼별 데이터 타입도 동일해야 한다.
➡️ EX) SELECT 문 UNION SELECT 문
➡️ 두 개 이상의 SELECT 문을 합치는 연산자
👉 중복값은 1개만 조회된다.
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE = 'D5'
UNION
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE SALARY >= 3000000;
👉 중복값이 모두 조회된다.
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE = 'D5'
UNION ALL
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE SALARY >= 3000000;
👉 중복값은 빼고 조회된다.
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE = 'D5'
MINUS
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE SALARY >= 3000000;
👉 중복값만 조회된다.
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE = 'D5'
INTERSECT
SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE SALARY >= 3000000;
❗ 두 SELECT 문의 컬럼의 수가 다르면 안된다.
❗ 두 SELECT 문의 컬럼 타입도 맞춰야 한다.
SELECT EMP_ID, EMP_NAME, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE = 'D5'
UNION
SELECT EMP_ID, EMP_NAME, SALARY, BONUS -- 컬럼 수 달라 실행 불가
FROM EMPLOYEE
WHERE SALARY >= 3000000;