cte иногда может быть боровом памяти.Следующий SQL прекрасно работает, пока не возникнут проблемы с памятью в других базах данных.
Любые идеи, как воспроизвести Row_Number Over Partition с использованием производных таблиц.
Таблица A содержит рабочий телефон.Таблица B содержит идентификатор.Мы должны объединить таблицу A с таблицей B, чтобы найти дубликаты в таблице B;использование телефона в качестве дублирующего критерия.
Этот SQL работает.Я просто хочу увидеть предложения с использованием производных таблиц.
;WITH cte
AS (SELECT Row_number() OVER (PARTITION BY a.WorkPhone ORDER BY b.id DESC ) AS
rownumber
,
a.WorkPhone,
a.id
FROM TableB B
JOIN TableA a
ON b.GroupofLeadsid = a.id
WHERE b.GroupofLeads = @GroupofLeads
AND NOT a.WorkPhone IS NULL
AND a.WorkPhone <> '')
UPDATE b
SET b.deleteflag = 1
FROM TableB b
JOIN cte t
ON b.id = t.id
WHERE b.GroupofLeads = @GroupofLeads
AND rownumber > 1