DB/Oracle

중복제거 distinct , rowid

Edward. K 2008. 11. 19. 09:22
반응형

동일한 값이 있을 경우단 하나만을 꺼내오고 싶을때가 있다..

이때 distinct 를 사용한다.

 

[ DISTINCT ]
     제시된 필드에 대한 중복체크 (n개 모두)
     고로...다수개의 필드중 하나의 필드에만 중복체크가 필요할때는 사용이 불가능하다.

    SELECT DISTINCT field_1
       FROM table_name
     WHERE field_1 = ''
ORDER BY field_1


[ ROWID ]
     다수개의 필드중  단 하나의 필드에만 중복 체크를 하려할 경우

    SELECT  field_1   -- 이넘의 중복건만 제거
                , field_2
                , field_3
       FROM table_name
     WHERE field_1 = ''
         AND rowid in( select max(rowid) from table_name group by field_1 )
ORDER BY field_1


rowid는 데이터가 많을 경우 부하를 가져온다.
이때는 SUBSELECT를 사용한다.

 

반응형