order by和rownum

如果想要做一个查询,想先排序再取前几条,以下这样写是不行的:

select *

from tableName

where rownum < 10

order by columnName

因为这些写的话,根据sql文的执行顺序,会先运行where语句,再运行orderby语句。所以会先把前10条抽出来,再排序。

如果像实现之前的需求,需要这么写:

select *

from

(select * from tableName

order by columnName)

where rownum < 10

猜你喜欢

转载自jiangmq100083.iteye.com/blog/2197615