select 字段a, 字段b from 表名 where rownum<=10 order by ID字段 desc
这个是不能够实现楼主意图的。因为rownum的计数实际上是在order by 之前的,所以如果你这样写的话,实际上oracle执行的是 先从表中随机取出10条数据,然后进行排序。可以用explain它的执行计划看看。所以,正确的写法应该和上上上上上的一样:select * from
(select 字段a, 字段b from 表名 order by ID字段 desc) t
where rownum<=10;