insert, update를 한번에 할 수 있는 MERGE문
MERGE INTO table_name alias
USING (table | view | subquery)
ON (join condition)
WHEN MATCHED THEN
UPDATE SET col1 = val1[, ...]
WHEN NOT MATCHED THEN
INSERT (column lists) VALUES (values);
테이블 2개를 join해서 update할 때 서브쿼리로 썼더니 계속 오류가 나서 해결방법을 찾음!
MERGE INTO table_name A
USING (SELECT B.user_id, B.user_name, B.user_no FROM ori_table_name B WHERE B.user_old = '24')
ON (A.user_no = B.user_no AND A.user_id = B.user_id)
--조건이 일치할 경우
WHEN MATCHED THEN UPDATE SET A.user_name = B.user_name
--조건이 일치하지 않을 경우
WHEN NOT MATCHED THEN INSERT (user_id, user_name, user_no) VALUES (B.user_id, B.user_name, B.user_no);
반응형
'Database > SQL' 카테고리의 다른 글
[oracle] PIVOT, UNPIVOT (0) | 2019.07.21 |
---|---|
[oracle] EXISTS, NOT EXISTS (0) | 2019.07.21 |
[oracle] INSTR (0) | 2019.07.21 |
[oracle] NVL, NVL2, NULLIF (0) | 2019.07.07 |
[oracle]order by 써서 update 하기 (0) | 2019.06.25 |