결재승인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니까 그냥 한 번 해 보자라는 마음으로 해 봤더니 됐다!!
나중에 사수한테 물어보니 원래 자기 테이블의 쿼리는 저렇게 사용해도 된다고 하셨다.
[Oracle] SqlDeveloper " Listener refused the connection with the following error:ORA-12505 " 에러 해결 방법 (0) | 2022.11.17 |
---|---|
[Oracle] 여러 Row 값을 ,(콤마)로 나열하기 (0) | 2022.09.19 |
[Oracle] NVL과 NVL2 차이점 NULL 처리 방법 (0) | 2022.09.14 |
[Oracle] UNION, UNION ALL 차이점 (0) | 2022.08.29 |
[Oracle] "ORA-01839 지정된 월에 대한 날짜가 부적합합니다." 에러 해결 방법 (0) | 2022.08.26 |