在orcale中rownum是oracle系统顺序分配为从查询返回的行的编号,也就是说返回的第一行分配的是1,第二行是2等等。如果想从一个表能简单的返回前10行,可以使用下面的例子:
select column1,column2 from table1 where rownum<11
但是如果有order by需要按某列排序的时候,例如:
select column1,column2 from table1 where rownum<11 order by column1
得不到我们想要的经过排序后前10行的结果,这时候需要用到子查询:
select column1,column2 from (selcet column1,column2 from table1 order by column1) where rownum<11
就可以得到我们想要的结果了。
如果还想得到中间某一定行数数据,可以使用minus操作,下面的例子可以返回从第4到第10之间的数据:
select column1,column2 from table1 where rownum<11
minus
select column1,column2 from table where rownum<4