-
오라클 rowid 활용Oracle 2016. 7. 6. 11:54
중복 데이터가 존재하고 해당 중복 데이터 끼리 순번을 업데이트하고 싶은경우
ex) 이렇게 같은 계약번호 끼리는 순번을 1번부터 다시 매기고 싶은경우
계약번호
순번
A000
1
A000
2
UPDATE 테이블 TB SET 순번컬럼 = (SELECT rn FROM (SELECT ROWID rid , ROW_NUMBER() OVER(PARTITION BY 특정컬럼 ORDER BY 정렬기준) rn FROM 테이블 ) WHERE rid = TB.ROWID );
중복 데이터 삭제
-- 중복데이터 제거 : 아래의 PARTITION BY에 들어가는 것은 PK -- 중복데이터 가운데 ORDER BY 에 의한 최초의 것을 제외한 나머지 삭제 DELETE FROM 테이블명 WHERE ROWID IN (SELECT ROWID FROM (SELECT ROWID ,ROW_NUMBER() OVER (PARTITION BY 중복체크컬럼 ORDER BY 정렬필드명 DESC ) NO FROM 테이블명 )WHERE NO != 1 ) ;
'Oracle' 카테고리의 다른 글
CentOS7 + 오라클 11g 설치 (2) 2017.01.07 오라클 정규식 활용 (1) 2016.11.07 윈도우 오라클 sys 로그인 방법 (0) 2016.02.11 오라클 로그 정리 (용량 부족시) (0) 2015.09.16 Datapump (0) 2015.09.11