先给出一个分页的例子: 查出从第一到第十行记录!
select c.* from( select a.*,rownum rm from oper_log a) c where c.rm between 1 and 10
注意:rownum是伪列,意思就是数据库中并不存在的列,它是只有在显示了第一行时才给出一个值 1,下一行则在上一行的值上加1,所以如果rownum>2 则不会有任何匹配的记录。由于rownum>2不匹配第一行记录,所以第一行不显示,记录跳到第二行,第二行又会被rownum重新写上值 1,这样第二行又匹配。以此类推造成每行记录输出的rownum值永远停在1上,并由于条件rownum>2造成所有行都不被显示。下面有详细解释。如果你想分页就必需将伪列转化为实际列,即将有伪列的查询做为子查询处理。
以下是解释: