반응형

@notepad_jj2

츄르사려고 코딩하는집사입니다.


이번 글은 오라클(Oracle) 내에 다른 테이블에서 Update를 사용하여 조건이 같은 값 가져와서 덮어쓰는 방법입니다.

 

Temp1과 Temp2 라는 테이블이 아래와 같이 존재합니다.

LANG NO CONTENT
KR 135 test1
EN 142 test2
KR 134 test3

Temp1

 

LANG NO CONTENT
KR 135  
EN 142  
KR 134  

Temp2

 

위의 테이블에서, Temp 1에 content Column에 있는 내용을 Temp2에 lang 컬럼과 no 컬럼이 같은 레코드에 Temp1의 content를 넣고 싶을 때 아래와 같이 쿼리를 작성하면 됩니다.

 

UPDATE TEMP2 T2--변경하고 싶은 테이블명
-- 넣고 싶은 컬럼명
SET CONTENT = (SELECT T1.CONTENT
			   FROM TEMP1 T1 -- T1 으로ALIAS
               WHERE T2.LANG = T1.LANG --두 테이블에서 LANG이 같고
               AND T2.NO = T1.NO) -- 두 테이블에서 NO가 같은 CONTENT를 CONTENT에 업데이트
-- 근데, NULL이 아닌 존재하는 것들만 가져온다.
WHERE EXISTS (SELECT 1
			  FROM TEMP1 T1
              WHERE T2.LANG = T1.LANG
              AND T2.NO = T1.NO);

 

 

 

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기