表:a
   a1   a2   a3
   1     2   3
   2     3   4
  1      2    3  // 这行就应该删除
 也就是说要删除access数据表中完全相同的两行    
 希望大家能给出详细的说明和程序!谢谢大牛啦!
 我是个新手,希望大牛们帮帮忙!!

解决方案 »

  1.   

    你在sql语句中加一个distinct不就可以了嘛?
      

  2.   

    select distinct * into #table_name from table_name 
    delete from table_name 
    select * into table_name from #table_name 
    drop table #table_name
      

  3.   

    恕小弟愚钝,能不能在说清楚点
      adoquery4.SQL.Clear;
      adoquery4.SQL.Add('????????????????????');
      adoquery4.ExecSQL;
    就是这段代码怎么写呀?  
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    //用'select distinct * into t2 from t1'获得无重复记录的数据集并创建新表t2
      ADOQuery1.Close;
      ADOQuery1.SQL.Text:='select distinct * into t2 from t1';
      ADOQuery1.ExecSQL;
    //删除t1
      ADOQuery1.Close;
      ADOQuery1.SQL.Text:='drop table t1';
      ADOQuery1.ExecSQL;
    //把t2中的所有数据放到新到t1中
      ADOQuery1.Close;
      ADOQuery1.SQL.Text:='select * into t1 from t2';
      ADOQuery1.ExecSQL;
    //删除t2临时表
      ADOQuery1.Close;
      ADOQuery1.SQL.Text:='drop table t2';
      ADOQuery1.ExecSQL;
    end;
      

  5.   

    简单来说就是
    从原表中通过distinct关键字 获取无重复的记录 并拷贝到临时表table2
    再删除原表table1。。
    再将临时表table2的记录完全拷贝到新的表中table1
    再删除table2..代码上面好几个都实现了哈..
      

  6.   

    这样就行了。
    delete from a  where  a1 in (select min(a1) from a group by a having count(*) >1)
      

  7.   

    不行, 要有一个标识ID才行。 如果a1 是一个自增或是标识ID才可。要不然只能 distinct 添加到临时表,全部删除再从临时表添加时来了