[Oracle] 자기 테이블의 컬럼으로 UPDATE 하는 방법
결재승인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니까 그냥 한 번 해 보자라는 마음으로 해 봤더니 됐다!!
나중에 사수한테 물어보니 원래 자기 테이블의 쿼리는 저렇게 사용해도 된다고 하셨다.