建立一个临时表,其结构与待操作的表相同。之后
insert into temp_a 
select qq, pp, dd, ee from a group by qq, pp, dd, ee
go
delete from a
go
insert into a 
select * from temp_a
go
drop table temp_a

解决方案 »

  1.   

    select distinct * into #table from yourtable
    go
    delete yourtable
    go
    insert yourtable select * from #table 
    go
    drop table #table 
      

  2.   

    TO ralf_jones(ralf_jones) :
          请问如果这样修改会不会破坏表之间的关系
          也就是说,会不会破坏A 与B ,C之间的关系
      

  3.   

    TO   ccat(阿猫): 
          请问如果这样修改会不会破坏表之间的关系
          也就是说,会不会破坏A 与B ,C之间的关系 
      

  4.   

    楼上的两种都可以,我认为ccat的比较好,都不会破坏表之间的关系(如果表没又重建过,表间的关系就保持!)。
      

  5.   

    delete from a where rowid!=(select max(rowid) from a k where a.qq=k.qq)
    这样也可以的哦
      

  6.   

    to javafly(ling)
       你的“from a k where a.qq=k.qq”什么意思?
      

  7.   

    a:你原来的表名k别名:ccat(阿猫) 的方法不错
      

  8.   

    这样的问题好讨论这吗长时间!
    里面的循环是找到最大的QQ
    我的删除操作是删除所以比你的最大的QQ小的纪录!
    delete  a
    from a,(select  max(QQ) as i_QQ from a group QQ having count(*)>1) as i_a
    where a.QQ<i_a.QQ