对于查询结果取前面的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______________
网友评论