viernes, 26 de marzo de 2010

Eliminar registros duplicados en una tabla con SQL Server 2008

Hola gente, acá les tengo un código en una sola línea para eliminar esos molestos registros duplicados en tablas de bases de datos relacionales.

Entonces, cuando se nos presenta el caso de que muchas veces existan registros de datos de empleados, por ejemplo, que al ser exportados a una base de datos quedan con ciertas diferencias lexicográficas (p.e.: López, Lopez, loPez, etc.) que son difíciles de detectar, necesitamos un código que pueda ser utilizado masivamente, pero que sea flexible. Por lo que, éste algoritmo te permite permutar las búsquedas con el campo o campos de una tabla que necesites para realizar los filtros. Sin más preámbulo, aquí está el código:

delete tabla from (select fila = row_number() over(partition by tu_campo1, [tu_campo2] order by algun_campo) from tu_tabla) as tabla where fila <> 1

10 comentarios:

  1. muchisimas gracias por este aporte, habia batallado demasiado para eliminar registros duplicados, funciona de maravilla!!!!

    ResponderBorrar
  2. De Lujo Papaaa!!! Funciona al 100% Sos la Ley!!! mis respetos y mil gracias Randall

    ResponderBorrar
  3. un existo!!!!!
    Me has ayudado "La vida", eres un existo MAESTRO!!
    un abrazo y sigue asi

    ResponderBorrar
  4. Excelente!!!!!!, muchas gracias por el aporte

    ResponderBorrar
  5. Buenas!!
    hay algun codigo similar en Access???¡???

    ResponderBorrar
  6. Buenas.... muchas gracias x su aporte la verdad me ayudo muchooo...

    ResponderBorrar
  7. Excelente!!!! gracias por tu ayuda

    ResponderBorrar
  8. MUCHAS GRACIAS FUNCIONÓ!!!!

    ResponderBorrar