상세 컨텐츠

본문 제목

[Oracle] 자기 테이블의 컬럼으로 UPDATE 하는 방법

DB/Oracle

by dy8_8 2022. 10. 14. 16:03

본문

728x90

결재승인1차, 결재승인2차 날짜 중 결재 절차를 줄이고(2차 삭제),

결재승인2차는 화면에 안 보이게 해 달라는 것이 요구사항이었다. 

 

안 보이게야 할 수는 있지만 남은 결재승인2차에 있던 데이터들은 어떻게 하면 되냐고 물어보니

결재승인1차에 데이터를 밀어 달라고 요청 하셨다. (결재승인2차가 있는 경우에만)

 

 

1. 결재승인1차에 결재승인2차 데이터를 넣어주면 되는데

2. 결재승인2차가 NULL이면 업데이트 칠 필요가 없다. 

 

내가 생각하기에 쿼리 짤 때 중요한건 위 두가지라고 생각했고,

두 가지 방법으로 쿼리를 짰었다. 

 

* COLUMN1 = 결재승인1차 / COLUMN2 = 결재승인2차

 

1) 서브쿼리 이용 

UPDATE TABLE  A

       SET A.COLUMN1 = ( SELECT B.COLUMN2

                                             FROM TABLE  B

                                            WHERE A.ID = B.ID)

   WHERE A.COLUMN2 IS NOT NULL

 

2) 본인쿼리 바라보게하기 

UPDATE TABLE 

       SET COLUMN1 = COLUMN2

   WHERE COLUMN2 IS NOT NULL

 

처음 1번처럼 쿼리를 짰는데 가만히 생각해 보니 자기 테이블의 쿼리는 

그냥 컬럼만 바로 넣어주면 안 되나 싶기도 하고 

어차피 개발DB니까 그냥 한 번 해 보자라는 마음으로 해 봤더니 됐다!! 

 

나중에 사수한테 물어보니 원래 자기 테이블의 쿼리는 저렇게 사용해도 된다고 하셨다. 

 

 

관련글 더보기