delete Tablename
WHERE (((Tablename.fieldname) In (SELECT [fieldname] FROM [Tablename] As Tmp GROUP BY [fieldname] HAVING Count(*)>1 )))
注:Tablename 为表名
  Fieldname为字段名

解决方案 »

  1.   

    delete a from tablename a,
    (select 重复的字段 as i_重复的字段,max(primary key) as iid  from tablename group by 重复的字段 having count(*)>1) as b
    where a.重复的字段=b.i_重复的字段 and a.primary key<iid
      

  2.   

    那就复杂一点吧,先用distinct参数放到临时表,再删除原来全有记录,再将临时表拷贝回去了
      

  3.   

    先建立一张与‘客户信息表’结构一样的临时表‘Temp_客户信息表’
    Insert into "Temp_客户信息表" 
    Select distinct * from "客户信息表"
    然后,
    Delete from "客户信息表"

    Insert into "客户信息表" 
    Select * from "Temp_客户信息表"
    再删除临时表即可。
    另外,这也说明你的表结构有问题,因为允许重复记录存在。请加个主键或唯一索引。
      

  4.   

    我每个字段都是重复值,好像DISTINCT只能用一个字段,怎么写?
      

  5.   

    select distinct * into Tmp from Table_Name
    drop table  Table_Name
    sp_rename tmp,Table_Name
      

  6.   

    楼上先生,我是用paradox数据库
    在 into 时不通过,
    另外,tmp是自动创建的吗?