有如下学生表
自动编号   学号   姓名 课程编号 课程名称 分数
1        2005001  张三  0001      数学    69
2        2005002  李四  0001      数学    89
3        2005001  张三  0001      数学    69
要求:删除除了自动编号不同,其他都相同的学生冗余信息

解决方案 »

  1.   

    delete * from 学生表
    where rowid  not in (select min(rowid) from 学生表 group by 学号,姓名,课程编号,分数 )
      

  2.   


    delete from 学生表 a where a.rowid!=(select max(rowid) from 学生表 b where a.学号=b.学号 and a.姓名=b.姓名 and a.课程编号=b.课程编号 and a.分数=b.分数 )
      

  3.   

    上面说的很对,就是利用rowid!
      

  4.   

    --上面的条件少了个课程名称
    delete from 学生表 a where a.rowid!=(select max(rowid) from 学生表 b where a.学号=b.学号 and a.姓名=b.姓名 and a.课程编号=b.课程编号 and a.课程名称=b.课程名称 and a.分数=b.分数 )