SQL Efficace – Efficient SQL

Written by Yves

July 29, 2005

Au d??tour d’une rencontre avec un guru du SQL, j’ai pu admirer le code suivant, permettant d’effacer tous le doublon d’une table. Imaginons une table (aTable) avec une seule colonne (aNumber), aucune cl??, mais avec plusieurs lignes contenant la m??me valeur :


1
1
2
1
3
3
3
1
2
1


Le but est du supprimer tous les doublons, ceci en une seule requ??te. Vous avez la r??ponse ?


Voici le code SQL :


set rowcount 1

select 1
while @@rowcount > 0
delete test
where 1 < (select count(*) from test t2 where test.id = t2.id)

set rowcount 0


 


 


Some couple of weeks ago, I had the opportunity to meet SQL guru, and I have seen a very nice SQL code, deleting duplicates rows in a table. Let’s imagine a table (aTable) with only one field (aNumber), without any key but multiple rows with the same value :


1
1
2
1
3
3
3
1
2
1


The goal is to delete duplicate values in only one SQL request. You have the answed ?


Here is the code :


set rowcount 1

select 1
while @@rowcount > 0
delete test
where 1 < (select count(*) from test t2 where test.id = t2.id)

set rowcount 0

You May Also Like…

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *