Tôi có hai bảng và tôi cần xóa các hàng khỏi bảng đầu tiên nếu bản sao chính xác của hàng tồn tại trong bảng thứ hai.Làm cách nào để so sánh hai bảng và xóa các hàng trùng lặp trong SQL?
Có ai có ví dụ về cách tôi sẽ thực hiện việc này trong máy chủ MSSQL không?
này hoạt động độc đáo miễn là không ai trong số các cột chứa null. Ngay sau khi điều đó xảy ra, bạn phải bắt đầu rối tung với các điều kiện phức tạp như (a.Name = b.Name OR (a.Name IS NULL và b.Name IS NULL)) cho mỗi cột nullable. Một lý do khác để loại bỏ null. –
@Marc Gravell, Nếu bảng 'a' và bảng' b' hiện diện trong 'khung nhìn'. Sau đó làm thế nào tôi có thể xóa các hàng trùng lặp và giữ nguyên bản gốc một lần? Tôi đã đăng [http://stackoverflow.com/questions/32065340/sql-server-2008-r2-delete-duplicate-rows-from-tables-containing-in-view/32065972?noredirect=1#comment52032907_32065972] trên đó tình hình. – MAK
Sử dụng INTERSECT và EXCEPT (xem câu trả lời khác) cho các loại hoạt động này tránh vấn đề NULL http://sqlblog.com/blogs/paul_white/archive/2011/06/22/undocumented-query-plans-equality-comparisons.aspx – ryascl