Database/SQL
[oracle] Merge문
yujin.me
2019. 7. 7. 21:47
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);
반응형