Visual FoxPro 9.0,如何查找/获取重复记录



我有一个带有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

相关内容

  • 没有找到相关文章

最新更新