상세 컨텐츠

본문 제목

조인해서 UPDATE 하기(MSSQL,오라클)

데이터베이스

by 김일국 2012. 3. 21. 09:45

본문

*MSSQL전용(WHERE조건을 사용할 수 있다)

UPDATE A --별칭

SET
A.CHARGE_RATE = B.CHARGE_RATE2
,A.FEE_AMT = B.FEE_AMT2
,A.NOTE = B.NOTE2

FROM 테이블 A

INNER JOIN 테이블 B
ON A.IDX = B.IDX2

WHERE A.IDX > 100

 

*오라클전용(/*+BYPASS_UJVC */ 힌트 코드를 사용한다)

UPDATE /*+BYPASS_UJVC */

(
SELECT
A.XA,
B.XB
FROM 테이블 A
INNER JOIN 테이블 B

ON A.KEY = B.KEY
) T
SET XA = XB;

오라클 예)

UPDATE /*+BYPASS_UJVC */
(
SELECT
A.RESISTRATION_NO AS SRC,
B.RESISTRATION_NO AS TARGET
FROM T_DORM_ENTER_SUBMIT A
INNER JOIN A_20120313 B
ON A.STNO = B.STNO
WHERE A.YEAR_TERM = '2012' AND A.TERM = '11' AND A.REG_STATUS = '1'
) T
SET TARGET = SRC;

 

*MSSQL,오라클공용(서브쿼리를 사용한다.-권장하지 않는다)

UPDATE 테이블 A
SET A.RESISTRATION_NO = ( SELECT B.RESISTRATION_NO
          FROM 테이블 B
          WHERE B.STNO = A.STNO AND B.YEAR_TERM = '2010' AND B.TERM = '22'
    )
WHERE
A.DISTRIB_STATUS = '사용중'

관련글 더보기

댓글 영역