중복제거 distinct , rowid
페이지 정보
작성자 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 4,830회 작성일 12-07-30 10:05본문
중복제거 distinct , rowid
DB/Oracle 2008/11/19 09:22동일한 값이 있을 경우단 하나만을 꺼내오고 싶을때가 있다..
이때 distinct 를 사용한다.
[ DISTINCT ]
제시된 필드에 대한 중복체크 (n개 모두)
고로...다수개의 필드중 하나의 필드에만 중복체크가 필요할때는 사용이 불가능하다.
SELECT DISTINCT field_1
FROM table_name
WHERE field_1 = ''
ORDER BY field_1
[ ROWID ]
다수개의 필드중 단 하나의 필드에만 중복 체크를 하려할 경우
더보기
ROWID는 ORACLE에서 INDEX를 생성하기 위하여 내부적으로 사용하는 PSEUDOCOLUMN 으로 사용자가 임으로 변경하거나 삭제할 수 없습니다.
단지 테이블의 한 컬럼처럼 참조만 가능하며 데이타베이스에 값이 저장되지는 않습니다
ROWID는 물리적인 ADDRESS를 가지고 있지 않고,
SINGLE BLOCK ACCESS로 찾고자 하는 ROW를 찾을수 있어 물리적인 ROWID는 주어진 테이블에
가장 빠른 ACCESS 방법을 제공합니다.
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를 사용한다.
댓글목록
등록된 댓글이 없습니다.