MERGE를 통해 다른 테이블에 있는 것을 원하는 테이블에 넣어보자.

 

실습용 테이블 생성

CREATE TABLE emp1 AS
    SELECT empNo, name, city, dept, sal FROM emp WHERE city ='인천';

CREATE TABLE emp2 AS
    SELECT empNo, name, city, dept, sal FROM emp WHERE dept ='개발부';

SELECT * FROM emp1; 
SELECT * FROM emp2;

emp1 에는 인천사람들의 empNo, name, city, dept, sal을 뽑아서 만들고 emp2에는 개발부서 사람들의 empNo, name, city, dept, sal를 뽑아 새로운 테이블들을 만들어 주었다.

 

MERGE 

MERGE INTO emp1 e1
        USING emp2 e2
        ON (e1.empNo = e2.empNo)
        WHEN MATCHED THEN
            UPDATE SET e1.sal = e1.sal + e2.sal
        WHEN NOT MATCHED THEN
            INSERT (e1.empNo, e1.name, e1.city, e1.dept, e1.sal) 
            VALUES (e2.empNo, e2.name, e2.city, e2.dept, e2.sal);

SELECT * FROM emp1;
SELECT * FROM emp2;
COMMIT;

 

테이블명에 e1, e2로 별명을 주었다. e1과 e2테이블의 empNo이 같으면 sal을 더해서 넣고, 다르면 값들을 새로 넣어주었다. 확일을 해보면 emp1에 emp2의 데이터들이 들어간 것이고 emp2는 그대로 인 것을 볼 수 있다.

+ Recent posts