分页

什么是rownum,有何特点?

1)rownum是oracle专用的关健字,rownum与表在一起,表在它在,表亡它亡。

2)rownum是number类型,rownum最小值是1,最大值与你的记录条数相同,且唯一连续。

3)rownum的特性:查询出符合条件的数据,然后再给这些数据赋值rownum,所以某一条数据并不是固定的rownum。

4)rownum也能参与关系运算,通常rownum只用于<或<=关系运算。

rownum = 1 //1条数据
rownum < 5 //4条数据	
rownum <=5 //5条数据 	
rownum <>2 //1条数据,与 rownum<2 相同	
rownum > 2 //没有数据   	
rownum >=2 //没有数据
rownum = 2 //没有数据

 

--显示emp表中3-8条记录(方式一:使用差集)
select rownum "伪列",emp.* from emp where rownum<=8
minus
select rownum,emp.* from emp where rownum<=2;
--显示emp表中3-8条记录(方式二:使用子查询,在from子句中使用)
select xx.*
from (select rownum ids,emp.* from emp where rownum<=8) xx
where ids>=2;

注意:在子查询中的别名,不可加""引号

Oracle:分页

关键字

rowid : 表示每条记录的唯一编号 ,这个Oracle数据库自己用的。

rownum : 在查询结果上为每条记录加的一个行号。 

分页查询的固定模板

select t.* from ( select rownum rn , temp.* from (

    select * from t_order order by t_order.order_price desc

) temp ) t

where t.rn > ( page -1 )*size and t.rn <=  page*size ;

标记为这个颜色的为固定模板,不管做任何查询都不用动

标记为这个颜色是我们编写查询语句,不用考虑分页

标记为这个颜色是分页的第一条记录rownum编号:公式 = (页码-1)*每页记录数量

标记为这个颜色是分页的最后一条记录rownum编号:公式 = 页码*每页记录数量

相关文章: