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 |