数据库分页大全( oracle 利用解析函数 row_number 高效分页)
Mysql 分 页采用 limt 关 键字
select * from t_order limit 5, 10 ; # 返回第 6-15 行数据
select * from t_order limit 5 ; # 返回前 5 行
select * from t_order limit 0,5 ; # 返回前 5 行
Mssql 2000 分页采用 top 关键 字 (20005 以上版本也支持关键字 rownum)
Select top 10 * from t_order where id not in (select id from t_order where id> 5 ) ; // 返回第 6 到 15 行数据
其中 10 表示取 10 记录 5 表示从第 5 条记录开始取
Oracle 分 页
① 采用 rownum 关键字 ( 三层嵌套 )
SELECT * FROM (
SELECT A.*,ROWNUM num FROM
(SELECT * FROM t_order)A
WHERE
ROWNUM <= 15 )
WHERE num>= 5 ;- - 返回第 5-15 行数据
② 采用 row_number 解析函数进行分页 ( 效率更高 )
SELECT xx.* FROM (
SELECT t.*,row_number() over(ORDER BY o_id)AS num
FROM t_order t
)xx
WHERE num BETWEEN 5 AND 15 ;
-- 返回 第 5-15 行 数据
解析函数能用格式
函数 () over(pertion by 字段 order by 字段 );
Pertion 按照某个字段分区
Order 按照勒个字段排序