Пожалуйста, рассмотрим сценарий нижеУдалить дубликат записи SQL Server
У меня есть таблица, как показано ниже
Tag | Id | Client | ....and more columns
c 30 X
c 40 Y
c 50 X
c 60 A
c 30 B
c 40 C
d 50 D
d 70 E
d 80 X
d 90 Z
i 30 X
i 90 Z
i 100 X
i 40 M
Я хочу, чтобы выбрать записи из таблицы таким образом, что если тег = я строку ниже получает удалены из результатов
i 30 X
i 90 Z
Это потому, что строка с id = 90 уже появилась с тегом = d и client = Z. Но ряд
i 40 M
не должны быть удалены, даже если идентификатор = 40 уже появился с клиентом = C, поскольку значение столбца клиента различны.
DELETE FROM myTable
WHERE tag=i AND id IN(SELECT id FROM myTable t1
INNER JOIN myTable t2
ON t1.id=t2.id
WHERE tag=d or tag=c)
Почему «i 100 X» удаляется? –
Я обновил его. 'I 30 X' необходимо удалить –