DB

Oracle 중복행 제거 및 추출 (RowID)

Lawmin 2012. 2. 17. 11:17
삭제는 DELETE FROM 테이블명 WHERE ROWID IN ( SELECT 절 ) 로 감싸기!
(힌트는 불필요하면 제거)

SELECT RID
FROM   (
SELECT /*+ FULL(A) PARALLEL(A 4) */ ROWID RID, ROW_NUMBER() OVER (PARTITION BY 유일함을 구분할 수 있을 만큼의 컬럼 목록(ex: PK 구성 컬럼들) ORDER BY ROWID) RN FROM 테이블명 A
)
WHERE RN > 1