我有一个带有2001233记录的表。我可以使用"从that_table"中选择"不同的 *"来获取未重复所有记录。也许大约2001100记录。
如果我想检查"独特"之后消失的记录,如何将那些133个记录进入另一个表格。
另一个问题是将新记录从一个表附加到另一个表格时,如何检查附加的记录尚未在目标表中?
感谢您回答我的问题:(
这将是一个黑客攻击,对于200百万行而言,您可以做到这一点:
Select Sys(2017,'',0,3) As crc, * ;
from myTable Into Cursor crsTemp ;
nofilter
Select * From crsTemp ;
where crc In ;
( Select crc From crsTemp;
having Count(*) > 1 ;
group By crc) ;
into Cursor crsDupes ;
nofilter
Select crsDupes
Browse
您应该从一开始就使用过主要键。
对于您的第二个问题,我认为最好使用"插入"而不是附加。即:
Insert into tableA ;
select * from tableB t1 ;
where not exists ( ;
select * from tableA t2 ;
where t1.field1 = t2.field1 and t1.field2 = t2.field2)
这是查找重复记录的另一种方法:假设您不会让删除的记录徘徊...
select tableA
set deleted off
delete all
index on <key expression> to keyfield unique
set deleted on
recall all
browse for deleted
此过程将删除所有记录,召回声明仅适用于索引记录,而将重复项标记为已删除。
尝试以此检查是否有重复记录。
SELECT colName, count(*) FROM tblName GROUP BY colName HAVING count(*) > 1