반응형
오라클 중복 데이터 삭제 방법
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
DROP TABLE T1;
CREATE TABLE T1 (C1 NUMBER, C2 VARCHAR2(100));
INSERT INTO T1 VALUES (1,'유재석');
INSERT INTO T1 VALUES (2,'정현돈');
INSERT INTO T1 VALUES (3,'박명수');
COMMIT;
-- 중복데이터 삽입
INSERT INTO T1 VALUES (1,'노홍철');
COMMIT;
SELECT * FROM T1;
-- 방법 (1). MIN(ROWID) 보다 큰건은 삭제(신규 추가된건 삭제)
DELETE FROM T1 A
WHERE ROWID > (SELECT MIN(ROWID) FROM T1 B
WHERE A.C1 = B.C1);
COMMIT;
-- 방법 (2). MAX(ROWID) 보다 작은건 삭제 (처음 추가된건 제)
DELETE FROM T1 A
WHERE ROWID < (SELECT MAX(ROWID) FROM T1 B
WHERE A.C1 = B.C1);
COMMIT;
-- 방법 (3). 추가순서 상관 없이 삭제
DELETE FROM T1
WHERE ROWID IN (SELECT ROWID
FROM (SELECT num FROM (SELECT ROW_NUMBER() OVER(PARTITION BY C1 ORDER BY C1) AS num FROM T1))
WHERE num > 1
);
|
cs |
반응형
'[DATABASE] ORACLE > SQL Programing' 카테고리의 다른 글
[Oracle] Bulk Insert (0) | 2022.06.28 |
---|---|
Convert Systemdate (0) | 2022.06.15 |
오라클 행열 전환(2) - 열을 행으로 전환 (0) | 2022.01.13 |
오라클 SQL 실습 사이트 (0) | 2022.01.07 |
오라클 행열 전환(1) - LISTAGG (0) | 2022.01.07 |
댓글