본문 바로가기
백엔드기술/개발환경

오라클 중복ROW 없애기

by RevFactory 2010. 7. 29.

-- 중복된 데이터중에서 ROWID가 큰 값(나중에 등록된 데이터) 제거
SQL> DELETE FROM emp a
     WHERE ROWID > (SELECT MIN(ROWID)
                    FROM emp b
                    WHERE b.empno = a.empno);


-- 나중에 들어온 데이터를 살릴경우
SQL> DELETE FROM emp a
     WHERE ROWID < (SELECT MAX(ROWID)
                    FROM emp b
                    WHERE a.empno = b.empno);

-- 실무 사용 쿼리
DELETE FROM PAPER_REF T1
WHERE ROWID > (SELECT MIN(ROWID)
                          FROM PAPER_REF T2
                          WHERE T1.NEW_PAPER_ID = T2.NEW_PAPER_ID 
                               AND T1.OLD_PAPER_ID = T2.OLD_PAPER_ID)

'백엔드기술 > 개발환경' 카테고리의 다른 글

리눅스 실무 - 명령어 정리  (0) 2011.08.31
LINUX - VI / VIM 단축키 모음  (0) 2009.12.09
DATABASE KeyNote  (0) 2009.12.09