我正在尝试删除由于某种原因被导入特定表中的重复值。此表中没有主键。有 27797 条唯一记录。
Select distinct txdate, plunumber from itemaudit
给我正确的记录,但当然只显示 txdate,plunumber。
如果可以选择所有字段但只选择不同的 txdate,plunumber 我可以导出值,删除重复的值并重新导入。或者是否可以从整个表中删除不同的值。
如果您选择所有字段的不同值,则该值不正确。
我正在尝试删除由于某种原因被导入特定表中的重复值。此表中没有主键。有 27797 条唯一记录。
Select distinct txdate, plunumber from itemaudit
给我正确的记录,但当然只显示 txdate,plunumber。
如果可以选择所有字段但只选择不同的 txdate,plunumber 我可以导出值,删除重复的值并重新导入。或者是否可以从整个表中删除不同的值。
如果您选择所有字段的不同值,则该值不正确。
要获取有关重复项的所有信息,您只需使用 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
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
);