본문 바로가기

SQL

[Oracle] MERGE INTO 구문

MERGE INTO A테이블명
USING
(
// A테이블 데이터와 비교할 쿼리
)

ON
(
// ON 절 안에 있는 조건에 해당이 되면 UPDATE 해당이 안되면 INSERT
)

WHEN MATCHED THEN // ON절에 조건에 맞는 데이터가 있을때 UPDATE
UPDATE
(

)

WHEN NOT MATCHED THEN // ON절에 조건에 맞는 데이터가 없을때 INSERT
INSERT
VALUES
(

)

 

 

EX)

 

MERGE INTO A_TABLE  T // A 테이블에 INSERT 및 UPDATE

USING( // USING 절 안에는 A 테이블 데이터와 비교할 쿼리
SELECT NAME, AGE
FROM A_TABLE    
WHERE NAME = "홍길동"
) R

ON( // ON 절 안에 있는 조건을 보면 이름이 홍길동인 사람의 데이터가 있으면  UPDATE 없으면 INSERT
R.NAME = T.NAME
)

WHEN MATCHED THEN
UPDATE   // 홍길동이란 이름의 데이터가 있을경우에 위의 R 쿼리의 결과값인 나이로 A테이블에 UPDATE
(
T.AGE= R.AGE
)
WHEN NOT MATCHED THEN // 홍길동이란 이름의 데이터가 없을경우에 위의 R 쿼리의 결과값인 이름과 나이로로 A테

                                          이블에 INSERT
INSERT
VALUES
(
R.NAME,

R.AGE
)

'SQL' 카테고리의 다른 글

[Oracle] Group by  (0) 2020.01.21
[Oracle] WITH AS~ 구문과 PIVOT 함수 활용  (3) 2020.01.17
[Oracle] Max/Min 함수  (1) 2020.01.15
[Oracle] ALL_TAB_COMMENTS 와 ALL_COL_COMMENTS  (0) 2020.01.14
[Oracle] SQL의 기본(SELECT,UPDATE,INSERT,DELETE)  (2) 2020.01.14