关于SQL 分页
数据库21条数据Start=0Limit=15SELECTTOPLimit*FROMaWHERE(id>Start)分出第一页正常,但是到了第二页不显示最后一条数据!有什...
数据库21条数据Start=0Limit=15SELECT TOP Limit * FROM a WHERE (id>Start)分出第一页正常,但是到了第二页不显示最后一条数据!有什么办法能让他正确的分页?这个语句隐含的毛病:当ID不存在的时候如:1,2,3,10,11,15,17,18,19,20,21这样应该会取错!
展开
2013-11-16
展开全部
SQL Server 从数据库表中的第M条记录开始取N条记录,利用Top关键字:注意如果Select语句中既有top,又有order by,则是从排序好的结果集中选择: SELECT * FROM ( SELECT Top N * FROM (SELECT Top (M + N - 1) * FROM 表名称 Order by 主键 desc) t1 ) t2 Order by 主键 asc 例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下: SELECT * FROM ( SELECT TOP 20 * FROM (SELECT TOP 29 * FROM Sys_option order by sys_id desc) t1) t2 Order by sys_id asc Oralce数据库 从数据库表中第M条记录开始检索N条记录 SELECT * FROM (SELECT ROWNUM r,t1.* From 表名称 t1 where rownum < M + N) t2 where t2.r >= M 例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下: SELECT * FROM (SELECT ROWNUM R,t1.* From Sys_option where rownum < 30 ) t2 Where t2.R >= 10 MySQL数据库 My SQL数据库最简单,是利用mySQL的LIMIT函数,LIMIT [offset,] rows从数据库表中M条记录开始检索N条记录的语句为: SELECT * FROM 表名称 LIMIT M,N 例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下: select * from sys_option limit 10,20
2013-11-16
展开全部
sql分页不是你那么写的,其分页思路如下,select top 页面大小 * from 表 where 编号 not in (select top (第几页-1)*页面大小 编号 from 表 order by 编号 asc) order by 编号 asc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-16
展开全部
nowPage = 1 --当前页数pageSize = 15 --每页显示的记录数beforCount = pageSize * (nowPage - 1)select top pageSize * from a where id not in(select top beforCount id from a order by id) order by id
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-16
展开全部
你第二页的start是多少?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-16
展开全部
select top pagesize * from A where id in (select top pagesize*(pageindex+1) id from A) and id not in(select top pagesize*pageindex id from A)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询