[SQL] MERGE문 사용법

Yuri Lee·2023년 4월 17일
0

SQL

목록 보기
4/7

MERGE 문을 사용하면 변경할 테이블에 데이터가 존재하는지 체크하고, UPDATE, DELETE, INSERT를 한 번에 작업이 가능하다. MERGE 문을 사용하지 않을 경우 해당 조건으로 테이블을 SELECT 한 후 IF 조건을 사용하여 UPDATE나 INSERT로 분기하는 로직을 작성해야 하는 번거로움이 있다.

MERGE 문의 경우 단일(한개의) 테이블에 UPDATE 또는 INSERT를 하는 경우 많이 사용하지만, 두개의 테이블을 비교하거나 서브 쿼리의 결과에 따라서 UPDATE, INSERT 작업이 가능하다.

MERGE INTO (변경할 테이블)
	USING DUAL (또는 비교할 테이블, 서브 쿼리)
	ON (조건문)
    WHEN MATCHED THEN (조건을 만족할 경우)
    UPDATE SET 컬럼 = "값"
    WHEN NOT MATCHED THEN (조건을 만족하지 않을 경우)
	INSERT (컬럼) VALUES () ;

단일 테이블 사용 (DUAL)

오라클에서는 DUAL이라는 dummy 테이블을 USING 절에 사용하면 단일 테이블 작업이 간단하지만, MSSQL에서는 DUAL 테이블이 없기 때문에 dummy 서브 쿼리를 사용하면 된다.

https://gent.tistory.com/371

profile
개발자 이유리

0개의 댓글