본문 바로가기
Database/Oracle Lecture

중복된 RECORD 삭제 방법

by 현이빈이 2008. 7. 11.
반응형
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);


  ================================================
    * Oracle Community OracleClub.com
    * http://www.oracleclub.com
    * http://www.oramaster.net
    * 운영자 : 김정식 (oramaster _at_ empal.com)
  ================================================
반응형