En supposant que votre table Employee a également une colonne unique (ID
dans l'exemple ci-dessous), le travail:
delete from Employee
where ID not in
(
select min(ID)
from Employee
group by EmployeeName
);
Cela laissera la version avec le plus bas de l'ID dans la table.
Modifier
Re McGyver du commentaire de SQL 2012
MIN
peut être utilisé avec le numérique, char, varchar, de type uniqueidentifier, ou des colonnes datetime, mais pas avec les colonnes de bit
Pour 2008 R2 et les versions antérieures,
MIN peut être utilisé avec le numérique, de type char, varchar ou des colonnes datetime, mais pas avec les colonnes de bit (et elle aussi ne fonctionne pas avec un GUID)
Pour 2008R2 vous aurez besoin de jeter l' GUID
pour un type pris en charge par MIN
, par exemple
delete from GuidEmployees
where CAST(ID AS binary(16)) not in
(
select min(CAST(ID AS binary(16)))
from GuidEmployees
group by EmployeeName
);
SqlFiddle pour divers types de Sql 2008
SqlFiddle de différents types dans Sql 2012