Я увидел следующее сообщение об основном способе де-дупликации записей без объяснения того, как это работает.Я вижу, что это работает, но я хочу знать, как это работает и как оценивать.Ниже я выложу код и мои мысли.Я надеюсь, что кто-то может сказать мне, если мой мыслительный процесс о том, как это оценивается шаг за шагом, является правильным, или если я выключен, может кто-нибудь, пожалуйста, сломайте его для меня.
CREATE TABLE #DuplicateRcordTable (Col1 INT, Col2 INT)
INSERT INTO #DuplicateRcordTable
SELECT 1, 1
UNION ALL
SELECT 1, 1
UNION ALL
SELECT 1, 1
UNION ALL
SELECT 1, 2
UNION ALL
SELECT 1, 2
UNION ALL
SELECT 1, 3
UNION ALL
SELECT 1, 4
GO
Это возвращаетбазовая таблица:
Затем этот код используется для исключения дубликатов:
SELECT col1,col2
FROM #DuplicateRcordTable
EXCEPT
SELECT col1,col2
FROM #DuplicateRcordTable WHERE 1=0
Насколько я понимаю, где 1 = 0создает временную таблицу, структурированную так же, но не имеющую данных.
Затем этот код начинает добавлять данные в новую пустую таблицу?
Например, он смотрит на первую пару Col1, Col2 из 1,1 и говорит: «Я не вижу егов таблице ", поэтому он добавляет его в таблицу" temp "и конечный результат, затем проверяет следующую строку, которая также равна 1,1, а затем видит ее уже в таблице" temp ", чтобы она не добавлялась в конечный результат ..... и так далее по данным.