English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Eliminación de registros duplicados en SQL (siete métodos)

Sin más preámbulos, aquí está el código:

si no es nulo el objeto_id('Tempdb..#T')
 eliminar tabla #T
Ir
Crear tabla #T([ID] int,[Name] nvarchar(1)) [Memo] nvarchar(2))
Insertar #T
select 1,N'A',N'A1' union all
select 2,N'A',N'A2' union all
select 3,N'A',N'A3' union all
select 4,N'B',N'B1' union all
select 5,N'B',N'B2'
Ir 

--I, el registro con el menor ID donde el Name es el mismo (se recomienda usar1,2,3), mantener el registro más pequeño

Método1:

eliminar a de #T a donde existe (seleccionar 1 de #T donde Name=a.Name y ID<a.ID

Método2:

eliminar a de #T uniendo a (seleccionar min(ID)ID,Name de #T agrupando por Name) b en donde a.Name=b.Name y a.ID=b.ID y b.Id es nulo

Método3:

delete a from #T a where ID not in (select min(ID) from #T where Name=a.Name)

Método4(Nota: ID es único cuando se puede usar):

delete a from #T a where ID not in(select min(ID)from #T group by Name)

Método5:

delete a from #T a where (select count(1) from #T where Name=a.Name and ID<a.ID)>0

Método6:

delete a from #T a where ID>(select top 1 ID from #T where Name=a.name order by ID)

Método7:

delete a from #T a where ID>any(select ID from #T where Name=a.Name)
select * from #T

Esto es todo el contenido de este artículo, espero que el contenido de este artículo pueda ayudar a todos a aprender o trabajar. También espero que todos lo apoyen a la enseñanza de gritos!

Declaración: El contenido de este artículo se obtiene de la red, es propiedad del autor original, el contenido se contribuye y carga de manera autónoma por los usuarios de Internet, este sitio no posee los derechos de propiedad, no se ha realizado una edición humana y no asume ninguna responsabilidad legal relacionada. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, reemplace # por @ para denunciar y proporcione evidencia. Una vez confirmado, este sitio eliminará inmediatamente el contenido sospechoso de infracción de derechos de autor.)

Te gustará