SQLite3进行分页查询,需要获取到总数
这样我好直接跳转到最后一页之类的,应该怎么写啊
用MySQL的方法好像不行
1条回答 默认 最新
- Check_Const 2022-11-22 03:55关注
1. MS SQL Server查询测试 DECLARE @v_rowsPerPage int --每页行数 DECLARE @v_TotalPages int --总页数 DECLARE @v_rowCurrent bigint --当前记录行 --DECLARE @v_PageCurrent int --当前页号 set @v_rowsPerPage=100 --假设每页100条 select @v_tCount=sum(1) from CheckTableName --测试查记录数 select @v_TotalPages=Ceiling(@v_tCount*1.0/@v_rowsPerPage) --测试计算总页数 print '记录数='+cast(@v_tCount as varchar) print '总页数='+cast(@v_TotalPages as varchar) 2. 依应用场景,不同数据库可使用不同方式控制对应页行数 (1)MySQL可用limit (2)ORACLE可用隐含的行号RowNum (3)MS SQL Server可用top,结合排序条件(order by) 3.模拟分页查询逻辑(较多人验证过效率还可以) (1) MS SQL Server的ROW_NUMBER() select top 每页行数 * from ( select top (页码*1每页行数) ROW_NUMBER() OVER (order by id) AS RowNum, t.* FROM CheckTableName t -- where 条件 ) t where RowNum between (页码-1)*每页行数+1 AND 页码*每页行数 order by RowNum (2)使用主键排序 --假设主键为ListNo select top 每页行数 * FROM CheckTableName where --条件1 and ListNo >( select isnull(Max(ListNo),0) FROM ( select top ((页码-1)*每页行数) ListNo FROM CheckTableName --测试表名 --where 条件1 --与前面条件1相同 order by ListNo ) t ) order by ListNo
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 C#i编程中so-ir-192编码的字符集转码UTF8问题
- ¥15 51嵌入式入门按键小项目
- ¥30 海外项目,如何降低Google Map接口费用?
- ¥15 fluentmeshing
- ¥15 手机/平板的浏览器里如何实现类似荧光笔的效果
- ¥15 盘古气象大模型调用(python)
- ¥15 传人记程序做的plc 485从机程序该如何写
- ¥15 已知手指抓握过程中掌指关节、手指各关节和指尖每一帧的坐标,用贝塞尔曲线可以拟合手指抓握的运动轨迹吗?
- ¥50 libwebsockets 如何添加其他socket事件回调
- ¥50 实现画布拖拽算子排布,通过flink实现算子编排计算,请提供思路