读书人

主流数据库的分页查询话语

发布时间: 2012-08-31 12:55:03 作者: rapoo

主流数据库的分页查询语句

mysql数据库

select * from ICM_CERT where 0=0 and ... and ...  limit  pagesize*curPage,pagesize

?pagesize*curPage为查询的起始位置,pagesize为每页条数即从 pagesize*curPage开始查询pagesize条记录。

?

?

SqlServer数据库

方法1:适用于 SQL Server 2000/2005SELECT TOP 页大小 * FROM table1 WHERE id NOT IN ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id )ORDER BY id方法2:适用于 SQL Server 2000/2005SELECT TOP 页大小 * FROM table1 WHERE id >(SELECT ISNULL(MAX(id),0)  FROM  (SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id) A)ORDER BY id方法3:适用于 SQL Server 2005SELECT TOP 页大小 * FROM  ( SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,*  FROM table1) AWHERE RowNumber > 页大小*(页数-1)说明,页大小:每页的行数;页数:第几页。使用时,请把“页大小”和“页大小*(页数-1)”替换成数字。

?

Oracle数据库

SELECT * FROM (SELECT ROWNUM r,t1.* From 表名称 t1 where rownum < M + N) t2  where t2.r >= M其中M起始插寻位置,N为每页条数

?

?

1 楼 85600367 2011-01-12 oracle 当数据量大的时候这种分页就不能用了 一般都用存储过程了
因为rownum 本身就是全表扫描后得到的 速度不可能快的 2 楼 nzm918 2011-01-12 85600367 写道oracle 当数据量大的时候这种分页就不能用了 一般都用存储过程了
因为rownum 本身就是全表扫描后得到的 速度不可能快的
存储过程实现分页这么做? 能指点一下吗 我还比较菜 只会这种笨方法

读书人网 >其他数据库

热点推荐