1

我正在尝试删除由于某种原因被导入特定表中的重复值。此表中没有主键。有 27797 条唯一记录。

Select distinct txdate, plunumber from itemaudit

给我正确的记录,但当然只显示 txdate,plunumber。

如果可以选择所有字段但只选择不同的 txdate,plunumber 我可以导出值,删除重复的值并重新导入。或者是否可以从整个表中删除不同的值。

如果您选择所有字段的不同值,则该值不正确。

4

2 回答 2

4

要获取有关重复项的所有信息,您只需使用 a 查询重复行的所有信息JOIN

SELECT b.*
FROM (SELECT COUNT(*) as cnt, txdate, plunumber 
      FROM itemaudit 
      GROUP BY txdate, plunumber 
      HAVING COUNT(*) > 1) a
INNER JOIN itemaudit b ON a.txdate = b.txdate AND a.plunumber = b.plunumber
于 2013-07-31T07:54:01.693 回答
0
DELETE FROM itemaudit t1
WHERE EXISTS (
SELECT 1 FROM itemaudit t2
WHERE t1.txdate = t2.txdate and t1.plunumber = t2.plunumber 
AND t1.RDB$DB_KEY < t2.RDB$DB_KEY
);
于 2017-01-25T12:22:51.717 回答