oracle如何统计排序后取前10条

对于查询结果取前面的10条,我们可以使用下面的语句。

select *from tt1 where rownum<=10

但是如果我们的数据是有大小的,想要取去排名前10的数据,那这样就不行了。

如果你在后面加排序会出错

select *from tt1 where rownum<=10 order by sj desc 

这样的结果并不是TOP10,而是前10行里取的数据排序一下。

所以我要的是先排序,然后再取前10条

你一定试过下面的语句。

select *from tt1 where order by sj desc and  rownum<=10

这样执行会出错。

那如何解决这个问题。只要把语句换成下面这样就可以了。

select *from (select *from tt1 where order by sj desc ) where  rownum<=10

学会了吗?

________________END______________

你可能感兴趣的:(oracle如何统计排序后取前10条)