본문 바로가기

DataBase/Oracle

[퍼옴]중복된 RECORD 삭제 방법

Oracle Technical Bulletins No. 10185 참고..
 
중복된 RECORD 삭제 방법
================================
 
중복된 RECORD를 삭제하는 방법은 2가지가 있습니다.
 
 
방법1)
 
SQL> CREATE TABLE emp2 AS SELECT distinct * FROM emp;

SQL> DROP TABLE emp;

SQL> RENAME emp2 TO emp;
 

 

방법2) 중복된 데이터중에서 ROWID가 큰 값을 제거
 
 
SQL> DELETE FROM emp a
        WHERE rowid > (SELECT MIN(ROWID)
                                FROM emp b
                               WHERE b.empno = a.empno);
 
 
 
en-core에서 본 白面書生(
www.okjsp.pe.kr)님의 글도 참고해서 넣었습니다.

방법2) 나중에 들어온 데이터를 살릴경우


SQL> DELETE FROM emp a
        WHERE ROWID < (SELECT MAX(ROWID)
                                 FROM emp b
                                WHERE a.empno = b.empno);