У меня есть две таблицы, и мне нужно удалить строки из первой таблицы, если во второй таблице существует точная копия строки.Как сравнить две таблицы и удалить повторяющиеся строки в SQL?
Есть ли у кого-нибудь пример того, как я буду делать это на сервере MSSQL?
Это прекрасно работает до тех пор, как ни один из столбцов не содержит нули. Как только это произойдет, вы должны начать возиться со сложными условиями, такими как (a.Name = b.Name OR (a.Name IS NULL AND b.Name IS NULL)) для каждого столбца с нулевым значением. Еще одна причина избегать нулей. –
@Marc Gravell, Если в 'view' присутствует таблица' a' и таблица 'b'. Тогда как я могу удалить повторяющиеся строки и сохранить оригинал один раз? Я разместил [http://stackoverflow.com/questions/32065340/sql-server-2008-r2-delete-duplicate-rows-from-tables-containing-in-view/32065972?noredirect1_comment52032907_32065972] на таких ситуация. – MAK
Использование INTERSECT и EXCEPT (см. Другой ответ) для этих типов операций позволяет избежать проблемы с NULL. Http://sqlblog.com/blogs/paul_white/archive/2011/06/22/undocumented-query-plans-equality-comparisons.aspx – ryascl