Удалите дубликаты из FieldA, где FieldB = X - PullRequest
0 голосов
/ 21 июня 2020

Оказывается, у меня есть несколько повторяющихся записей в таблице, где FieldA=FieldA.

Обман, от которого я хочу избавиться, имеет FieldB=Y.

Однако я не хочу просто запустить

Delete from TableA where FieldB=Y

, потому что я хочу удалить FieldB=Y только тогда, когда это обман. Я полагаю, мне нужно создать какой-то подзапрос из

having count(*) >1

, но я не уверен, как это будет выглядеть.

1 Ответ

0 голосов
/ 21 июня 2020

Этот запрос:

select FieldA
from TableA
group by FieldA
having count(*) > 1

возвращает все дублированные FieldA s. Вы можете присоединиться к таблице к вышеуказанному запросу в операторе DELETE:

delete a
from TableA a 
inner join (
  select FieldA
  from TableA
  group by FieldA
  having count(*) > 1
) t on t.FieldA = a.FieldA
where a.FieldB = Y
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...