아래 병합 쿼리를 사용하여 날짜를 업데이트하고 perfromance 문제에 대해 ROWID
논리를 사용하고 있습니다.업데이트를 사용하여 병합 삽입 새 행
하지만 어떻게 든 새로운 행을 삽입합니까? 난 그냥 TEST_GRP
테이블을 업데이 트하고 싶지 않아 새로운 행의 삽입 싶습니다.
나는 처음으로 로직을 사용하고 있는데 실제로 새로운 행을 삽입하거나 그냥 테이블을 업데이트하는지 잘 모르겠습니다.
MERGE INTO TEST_GRP tgt
USING (SELECT ID,
ROWID r_id,
row_number() over (partition by ID ORDER BY DT_DATE) rn
FROM TEST_GRP) src
ON (tgt.rowid = src.r_id AND src.rn = 1)
WHEN MATCHED THEN
UPDATE SET DT_DATE = to_date('01.01.2017', ''dd.mm.yyyy'')
WHERE DT_DATE != to_date('01.01.2016', ''dd.mm.yyyy'')
and DB_NAME = 'ARD';
업데이트에서 where 절과 다른 날짜가 왜 궁금합니다. "01.01.2016 일이 아니면 01.01.2017로 업데이트하십시오." –