집 >데이터 베이스 >MySQL 튜토리얼 >단일 T-SQL 쿼리를 사용하여 SQL Server에서 중복 레코드를 삭제하는 방법은 무엇입니까?
SQL Server에서 중복 행을 효율적으로 제거
Employee
열이 포함된 EmployeeName
테이블을 상상해 보세요. 목표는 EmployeeName
필드만을 기준으로 중복 행을 제거하는 것입니다. 이는 SQL Server의 간결한 T-SQL 쿼리를 사용하여 달성할 수 있습니다.
해결책:
창 기능을 활용하면 우아한 솔루션이 제공됩니다. 다음 쿼리는 rn
별로 정렬된 각 EmployeeName
그룹 내의 각 레코드에 고유한 행 번호(empId
)를 할당합니다. 이후 rn
가 1보다 큰 행(즉, 중복)이 삭제됩니다.
<code class="language-sql">DELETE x FROM ( SELECT *, rn = ROW_NUMBER() OVER (PARTITION BY EmployeeName ORDER BY empId) FROM Employee ) x WHERE rn > 1;</code>
DELETE
문을 실행하기 전에 삭제할 행을 미리 보려면 다음 SELECT
쿼리를 실행하세요.
<code class="language-sql">SELECT * FROM ( SELECT *, rn = ROW_NUMBER() OVER (PARTITION BY EmployeeName ORDER BY empId) FROM Employee ) x WHERE rn > 1;</code>
위 내용은 단일 T-SQL 쿼리를 사용하여 SQL Server에서 중복 레코드를 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!