删除仅保留表的前10行的所有行

时间:2013-05-25 07:24:13

标签: oracle

我有一个表,其中包含150条记录,同样相应的150行,但现在我只想保留它的前10行,并删除剩余的剩余行,所以总共有10行应该在那里请告知如何实现这一点,我使用oracle作为数据库。

2 个答案:

答案 0 :(得分:9)

您可以使用带有rowid的子查询来标识要保留的记录:

delete from mytab where rowid not in 
  (select rowid from mytab where rownum < 11);

Rownum是一个Oracle伪列,用于对结果集中的行进行编号 - 内部查询使用它来将结果计数限制为10.

答案 1 :(得分:0)

您可以拥有一个维持编号的列。表中的行和框架一个SQL语句命令删除计数为no的行。大于10.