Apagar linhas repetidas SQL Server usando CTE (Commom Table Expressions) é um jeito rápido e muito simples!
Vamos lá:
-- Cria uma tabela que terá as linhas
duplicadas
Create
Table Funcionarios (Id Int, Nome Varchar(100), Departmento Varchar(50))
-- Insere dados duplicados na tabela
(Ids 1 e 4)
insert into Funcionarios values (1, 'João', '.Net')
insert into Funcionarios values (2, 'Arnaldo', '.NET')
insert into Funcionarios values (3, 'Alexandre', 'PHP')
insert into Funcionarios values (4, 'João', '.NET')
insert into Funcionarios values (5, 'Carlos', 'Designer')
-- Lista os registros repetidos
considerando as colunas Nome e Departamento
With
tblTemp as
(
Select
ROW_NUMBER()
Over(PARTITION BY Nome, Departmento ORDER BY Nome)
As RowNumber,* FROM Funcionarios
)
-- Apaga as linhas repetidas, deixando
apenas uma delas
Delete
From tblTemp Where
RowNumber >1
--Apaga a tabela de testes
Drop Table Funcionarios
Fácil né? Sem copias de tabelas, agrupamentos e etc.