select min(primaryid)primaryid,RecordID,  HighestID, Fname       ,  D_Val , I_Val ,   V_Val  ,   X_Val
from 表
group by RecordID,  HighestID, Fname       ,  D_Val , I_Val ,   V_Val  ,   X_Val

解决方案 »

  1.   

    select min(primaryid)primaryid,RecordID,  HighestID, Fname       ,  D_Val , I_Val ,   V_Val  ,   X_Val into #t
    from 表
    group by RecordID,  HighestID, Fname       ,  D_Val , I_Val ,   V_Val  ,   X_Valdelete 表 from 表 inner join #t b on 表.primaryid<>b.primaryid
      

  2.   

    表名替换掉就可以了DELETE FROM huang 
    WHERE primaryid NOT IN (select min(primaryid)primaryid
    from [huang]
    group by RecordID,  HighestID, Fname       ,  D_Val , I_Val ,   V_Val  ,   X_Val )
      

  3.   


    --语句一
            delete Tb_dis
    from Tb_dis t
    where exists(select 1 from Tb_dis where C1=t.C1 and  C3=t.C3 and  id<t.id)--语句二
    delete Tb_dis from Tb_dis t2 where id not in (
            select max(t1.id) from Tb_dis t1 where
            t1.c1=t2.c1 and t1.C3=t2.C3)--语句三
    delete a from Tb_dis a join Tb_dis b on a.C1  = b.C1 and a.C3 = b.C3 where a.id>b.id
    表名、去重的条件字段改改就可以了!
      

  4.   

    delete 表 from 表 inner join #t b on 表.primaryid<>b.primaryid有误--把其它列都加上,注意null的处理
      

  5.   

    delete 表 from 表 inner join #t b on 表.primaryid<>b.primaryid有误--把其它列都加上,注意null的处理所以叫他==
      

  6.   

    适合2005及以上的版本;with t
    as
    (
    select *,
           ROW_NUMBER() over(PARTITION by primaryid , RecordID , HighestID ,Fname,D_Val,I_Val,V_Val,X_Val
                             order by @@servername) as rownum
    from 表
    )delete from t
    where rownum > 1