Ho una tabella di dipendenti che contiene circa 25 colonne. Al momento ci sono molti duplicati e vorrei provare a sbarazzarmi di alcuni di questi duplicati.Rimuovere i duplicati con meno valori nulli
In primo luogo, voglio trovare i duplicati cercando più record con gli stessi valori in nome, cognome, numero del dipendente, numero dell'azienda e stato.
SELECT
firstname,lastname,employeenumber, companynumber, statusflag
FROM
employeemaster
GROUP BY
firstname,lastname,employeenumber,companynumber, statusflag
HAVING
(COUNT(*) > 1)
Questo mi dà i duplicati ma il mio obiettivo è quello di trovare e mantenere il miglior record singolo ed eliminare gli altri record. Il "miglior singolo record" è definito dal record con il minor numero di valori NULL in tutte le altre colonne. Come posso fare questo?
Sto usando Microsoft SQL Server 2012 MGMT Studio.
ESEMPIO:
Rosso: DELETE Verde: TENERE
NOTA: Ci sono molte più colonne della tabella di Quello che questa tabella mostra.
si può modificare i record del campione di domande e previsto in uscita –
Certo, ho aggiunto un esempio. – user3788671
Un metodo molto grezzo ma potresti sommare la lunghezza del testo in ogni colonna e ordinare in base a quello? Oppure sommare un IsNull()? – Liath