Этот вопрос относится к оператору SQL UNION
внутренний способ поиска повторяющихся строк - не о написании собственного запроса для сравнения двух строк.Как UNION в SQL Server сравнивает одну строку с другой?
Рассмотрите, например, я использую объединение с 2 выбранными запросами. Каждый выбор объединяет 5 или 6 таблиц и имеет 10 столбцов в результирующем наборе.
Вопрос в следующем: как UNION
найти дубликаты строк? Сравнивает ли столбца1 с select1 с столбцом1 select2 & & column2 select1 с колонкой2 select2 ......?
Когда у меня есть 10 столбцов в каждом выборе - результат содержит 7000 строк (например).
Когда я есть 9 или 11 столбцов в операторе отбора (но не изменение присоединиться к/логике запроса) - результат содержит различное количество строк, а не 7000.
Может кто-нибудь объяснить, каким образом UNION
определить, какие строки - это «дубликаты»?
Примечание: Я использую SQL Server 2008.
Сравнение столбцов по столбцам должно быть способом. Даже в реляционной алгебре объединение в основном сравнивает кортежи из разных элементов отношений по элементу, чтобы определить, есть ли дубликаты. Смотрите это: https://www.cs.purdue.edu/homes/bertino/348Spring2012/relational_algebra_and_calculus.pdf –
Английский немного шаткий :), но я уверен, что вопрос правильный. –
Есть ли столбец «timestamp» в любом месте этих запросов? –