主流数据库的分页查询语句
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 本身就是全表扫描后得到的 速度不可能快的
存储过程实现分页这么做? 能指点一下吗 我还比较菜 只会这种笨方法