分页
什么是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;
注意:在子查询中的别名,不可加""引号
关键字
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编号:公式 = 页码*每页记录数量