기본 키 없이 SQL 테이블에서 중복 레코드 처리
기본 키가 없는 경우 SQL 테이블에서 중복 레코드를 삭제하는 것은 다음과 같습니다. 도전적이다. 다음 시나리오를 고려해 보겠습니다.
"employee"라는 테이블에는 기본 키 없이 다음 레코드가 포함되어 있습니다.
create table employee ( EmpId number, EmpName varchar2(10), EmpSSN varchar2(11) ); insert into employee values(1, 'Jack', '555-55-5555'); insert into employee values (2, 'Joe', '555-56-5555'); insert into employee values (3, 'Fred', '555-57-5555'); insert into employee values (4, 'Mike', '555-58-5555'); insert into employee values (5, 'Cathy', '555-59-5555'); insert into employee values (6, 'Lisa', '555-70-5555'); insert into employee values (1, 'Jack', '555-55-5555'); insert into employee values (4, 'Mike', '555-58-5555'); insert into employee values (5, 'Cathy', '555-59-5555'); insert into employee values (6 ,'Lisa', '555-70-5555'); insert into employee values (5, 'Cathy', '555-59-5555'); insert into employee values (6, 'Lisa', '555-70-5555');
이 테이블에서 목표는 중복 레코드를 삭제하는 동시에 보존하는 것입니다. 독특한 것들. 이를 달성하기 위해 "ROW_NUMBER()" 함수와 "DELETE" 문의 조합을 사용할 수 있습니다.
DELETE SUB FROM (SELECT ROW_NUMBER() OVER (PARTITION BY EmpId, EmpName, EmpSSN ORDER BY EmpId) cnt FROM Employee) SUB WHERE SUB.cnt > 1
코드 분석:
이 쿼리를 실행하면 "employee" 테이블의 중복 레코드가 제거되고 고유 레코드만 남습니다.
select * from employee; EmpId EmpName EmpSSN 1 Jack 555-55-5555 2 Joe 555-56-5555 3 Fred 555-57-5555 4 Mike 555-58-5555 5 Cathy 555-59-5555 6 Lisa 555-70-5555
위 내용은 기본 키 없이 SQL 테이블에서 중복 레코드를 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!