关于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)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式