看到一条分页sql,但是没看懂怎么就实现分页了,请帮忙分析语句各部分的功能,还有里面的20 是就可以固定写为20 还是说根据不同页进行变化?
select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段
10 = 每页记录数
20 = (当前页 + 1) * 每页记录数,
一条sql 语句搞定数据库分页
答案:1 悬赏:70 手机版
解决时间 2021-02-01 08:54
- 提问者网友:骨子里的高雅
- 2021-01-31 16:49
最佳答案
- 五星知识达人网友:风格不统一
- 2021-01-31 17:53
(select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc)
里面的这句应该好理解,就是 20 = (当前页 + 1) * 每页记录数, 当前所有的记录数 这是没有分页的情况
select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,
就是从查出来的结果中,在查询前10条,在子语句查询的结果是倒排序的,所以,这个查的是上一页没有的情况下,是这样分页的
这样的话,一般不会出现页数不满的情况,在最后页和倒数第二页可能会出现数据重复情况
两个的排序字段一个是 desc 一个是asc 这样的
里面的这句应该好理解,就是 20 = (当前页 + 1) * 每页记录数, 当前所有的记录数 这是没有分页的情况
select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,
就是从查出来的结果中,在查询前10条,在子语句查询的结果是倒排序的,所以,这个查的是上一页没有的情况下,是这样分页的
这样的话,一般不会出现页数不满的情况,在最后页和倒数第二页可能会出现数据重复情况
两个的排序字段一个是 desc 一个是asc 这样的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯