mysql和oracle的分页

时间:2022-12-01 14:54:30

Mysql分页采用limt关键字 

select * from t_order limit 5,10;     #返回第6-10行数据

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 notin (select id from t_order where id>5 ); //返回第6到15行数据  其中10表示取10记录 5表示从第5条记录开始取


Oracle分页
①采用rownum关键字(三层嵌套) 

--返回第5-15行数据

SELECT *

FROM(  SELECT A.*,ROWNUM  num

             FROM (SELECT * FROM  t_order)A  WHERE  ROWNUM<=15

)

WHERE num>=5; 

②采用row_number解析函数进行分页(效率更高) 

--返回第5-15行数据

SELECT xx.* FROM( SELECT t.*,row_number()over(ORDER BY o_id)AS num

                                     FROMt_order t

                               )xx

WHERE num BETWEEN 5 AND 15;    

解析函数能用格式  函数()over(pertion by 字段 order by 字段);  Pertion 按照某个字段分区  Order 按照某个字段排序  用分析函数 一万条后翻最后一页会很慢,使用ROWNUM 一万条之后每翻一页都会慢