SQL - Cancellazione Record Doppi

Il . Inserito in Informatica. Visite: 853

Stella inattivaStella inattivaStella inattivaStella inattivaStella inattiva
 

 

Può capitare che per errori di programmazione unione di archivi troviamo nei nostri files dei record doppi da eliminare ...

Con SQL è un operazione molto semplice ... vediamo un esempio:
Supponiamo il nostro file con un tracciato molto semplice: CAMPO1, CAMPO2, CAMPO3 ... la chiave (con i doppioni) supponiamo sia fatta dai due campi CAMPO1 e CAMPO2.
Il contenuto del file, con i doppioni è il seguente:

...+....1....+....2....+....3....+...
 CAMPO1      CAMPO2      CAMPO3      
 ----------  ----------  ----------  
 PIPPO       BAUDO       	1           
 PIPPO       BAUDO       	2           
 PIPPO       BAUDO       	3           
 PIPPO       PAPO        	1           
 PLUTO      PAPO        	3           
 PLUTO      PAPO        	4           
* * * * *  F I N E  D E I  D A T I  *

 

La seguente istruzione SQL elimina eventuali doppioni (cancellando il record con numero di record più alto !) ... attenzione, se la stessa chiave è ripetuta più di due volte conviene eseguire ripetutamente la stessa istruzione per eliminare di volta in volta un un doppione della stessa chiave.

DELETE FROM MIOFILE AS B WHERE RRN(B) IN
( SELECT MAX(RRN(A)) FROM MIOFILE AS A GROUP BY CAMPO1,CAMPO2 HAVING COUNT(*)>1)

 

Primo passaggio 
...+....1....+....2....+....3....+...
 CAMPO1      CAMPO2      CAMPO3      
 ----------  ----------  ----------  
 PIPPO       BAUDO       	1           
 PIPPO       BAUDO       	2           
 PIPPO       PAPO        	1           
 PLUTO       PAPO        	3           
* * * * *  F I N E  D E I  D A T I  *
Secondo passaggio 
...+....1....+....2....+....3....+...
 CAMPO1      CAMPO2      CAMPO3      
 ----------  ----------  ----------  
 PIPPO       BAUDO       	1           
 PIPPO       PAPO        	1           
 PLUTO       PAPO        	3           
* * * * *  F I N E  D E I  D A T I  *
Autore
Davide Galloni
Author: Davide GalloniEmail: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
"La vita è l'insegnante più severa, prima ti fa l'esame e poi ti spiega la lezione"

Tags: sql cancellazione record cancellazione record doppi

Aggiungi commento


Codice di sicurezza
Aggiorna

Link Sponsorizzati.