oracle은 중복된 데이터를 삭제하고 첫 번째 레코드를 유지합니다
1. 테이블에서 중복된 레코드를 찾습니다. 중복된 레코드는 단일 필드(ID)를 기준으로 판단됩니다.
select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1)
2. 테이블에서 중복 레코드는 단일 필드(Id)를 기준으로 판단되며, rowid가 가장 작은 레코드만 남습니다
DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM 表 GROUP BY id HAVING COUNT(*) > 1);
3 테이블에서 중복된 중복 레코드(여러 필드)를 조회합니다
select * from 表 a where (a.Id,a.seq) in(select Id,seq from 表 group by Id,seq having count(*) > 1)
4. 테이블의 중복된 중복 레코드(다중 필드), 가장 작은 rowid를 가진 레코드만 남습니다
delete from 表 a where (a.Id,a.seq) in (select Id,seq from 表 group by Id,seq having count(*) > 1) and rowid not in (select min(rowid) from 表 group by Id,seq having count(*)>1)
5. 조회 테이블의 중복된 중복 레코드(다중 필드)에는 가장 작은 rowid를 가진 레코드가 포함되지 않습니다
select * from 表 a where (a.Id,a.seq) in (select Id,seq from 表 group by Id,seq having count(*) > 1) and rowid not in (select min(rowid) from 表 group by Id,seq having count(*)>1)
PHP 중국어 웹사이트에는 무료SQL 튜토리얼이 많이 있습니다. 누구나 배울 수 있습니다!
위 내용은 Oracle은 중복 데이터를 삭제하고 첫 번째 기록을 유지합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!