728x90
반응형
SMALL
이관작업등을 하다가..중복된 데이터를 삭제하고 싶을 때가 있다.
그럴때는, ROWID를 이용한다.
DELETE FROM TMP_STRS_MOMT
WHERE ROWID IN (
SELECT ROWID FROM (
SELECT * FROM (
SELECT ROW_NUMBER() OVER(PARTITION BY 컬럼1, 컬럼2, ... ORDER BY 컬럼1, 컬럼2) AS num
FROM TMP_STRS_MOMT
)
WHERE num > 1
)
);
ROW_NUMBER()와 ROWID를 이용한다.
참고로, ROWID는 뒤에 넣는것이 무조건 수치가 커지는것을 보장하지는 않으니..
이점 기억해두고..
해당 쿼리는 쿼리문 살펴보면, 어렵지 않게 쓸 수 있다.
728x90
반응형
LIST
'Oracle' 카테고리의 다른 글
Toad 다른 DB로 데이터 복사하기 (0) | 2020.11.17 |
---|---|
[ORA-01861] 리터럴이 형식 문자열과 일치하지 않음 (0) | 2020.11.17 |
oracle GREATEST, LEAST 함수 (0) | 2020.11.17 |
[Toad] ORACLE DBMS_OUTPUT.PUT_LINE이 나오지 않을때 (0) | 2020.11.17 |
oracle 테이블과 데이터 복사 (0) | 2020.11.17 |