Множественные выражения с IN

У меня есть две довольно большие (4+ миллиона записей) таблицы с одинаковой структурой, и в них около 300 тысяч дублирующихся строк. Я хочу УДАЛИТЬповторяющиеся строки, используя синтаксис УДАЛИТЬ В.

Я уже делал это с помощью оператора MERGE(доступно только в 2008 или новее, поэтому я не могу его использовать, так как у меня все еще работает 2005), и оператор DELETE EXISTS , но у меня возникли проблемы с запуском DELETE IN.

Проблема с DELETE INзаключается в том, что моя большая таблица имеет составной первичный ключ, а это означает, что я могу идентифицировать уникальные строки, только используя все эти столбцы вместе.

Возможно ли в T-SQL использовать несколько выражений в качестве параметров предложения IN? Что-то вроде:

DELETE FROM MyBigTable
WHERE ([Column1], [Column2], [Column3]) IN
    (SELECT [Column1],
            [Column2],
            [Column3]
     FROM MyBigTable
     INTERSECT
     SELECT [Column1],
            [Column2],
            [Column3]
     FROM MyOtherBigTable)
7
задан Brian Tompsett - 汤莱恩 21 August 2015 в 10:21
поделиться