Mam dwie tabele i muszę usunąć wiersze z pierwszej tabeli, jeśli dokładna kopia wiersza istnieje w drugiej tabela.Jak mogę porównać dwie tabele i usunąć zduplikowane wiersze w SQL?
Czy ktoś ma przykład, w jaki sposób chciałbym zrobić to na serwerze MSSQL?
Działa to dobrze, o ile żadna z kolumn zawiera wartości null. Tak szybko, jak to się stanie, musisz zacząć mieszać się ze złożonymi warunkami, takimi jak (a.Nazwa = b.Nazwa LUB (a.Nazwa IS NULL I b.Nazwa IS NULL)) dla każdej kolumny z wartościami zerowymi. Kolejny powód, dla którego warto unikać wartości null. –
@Marc Gravell, Jeśli tabela 'a' i tabela' b' obecne w 'widoku'. Jak mogę usunąć duplikaty wierszy i zachować oryginał raz? Opublikowalem [http://stackoverflow.com/questions/32065340/sql-server-2008-r2-delete-duplicate-rows-from-tables-containing-in-view/32065972?noredirect=1#comment52032907_32065972] na takich sytuacja. – MAK
Używanie INTERSECT i EXCEPT (zobacz inną odpowiedź) dla tego typu operacji pozwala uniknąć problemu NULL http://sqlblog.com/blogs/paul_white/archive/2011/06/22/undocumented-query-plans-equality-comparisons.aspx – ryascl