0

原来我在一个表中有一些重复的记录FieldA=FieldA

我想摆脱的骗子有FieldB=Y

但是,我不想只是跑

Delete from TableA where FieldB=Y

因为我只想FieldB=Y在它是骗子时删除。我想我需要从

having count(*) >1

但我不确定那会是什么样子。

4

1 回答 1

0

这个查询:

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
于 2020-06-21T17:04:18.450 回答