Eliminare le righe di una tabella che presentano contenuto duplicato in Sql Server

upt_sql_select_not_distinct

Oggi vogliamo segnalarvi uno script pratico e veloce per rimuovere da una tabella le righe che presentano contenuto duplicato.

Lavorando con le tabelle, spesso ci sarà capitato di voler cancellare le tuple di dati che filtrate su una precisa colonna hanno lo stesso valore e pertanto andrebbero rimosse.

Lo script che vi suggeriamo consente di raggiungere questo risultato eliminando le righe che presentano il medesimo contenuto a prescindere dal numero di ripetizioni e lasciando all’interno della tabella solo la prima di esse.

use <nome_database>
;with cte as (
select <nome_colonna>, row_number() over
(partition by <nome_colonna> order by <nome_colonna>) as [r]
from <nome_tabella>)
delete cte where [r] > 1

Naturalmente volendo rimuovere le righe ripetute un numero N di volte, basta sostituire N al valore 1.

Eliminare le righe di una tabella che presentano contenuto duplicato in Sql Server ultima modifica: 2013-10-16T13:13:45+00:00 da Codelab Studio

Comments are closed.