×

分页查询公式

分页查询公式(求解 一个分页的计算公式)

admin admin 发表于2023-11-02 13:55:35 浏览32 评论0

抢沙发发表评论

本文目录

求解 一个分页的计算公式

page = (row-1)/5+1即,页数=(行数-1)/5+1注,“/”整数相除,得到的结果还是整数(如,4/5=0)。则:第1行,页数=(1-1)/5+1=1第2行,页数=(2-1)/5+1=1第3行,页数=(3-1)/5+1=1第4行,页数=(4-1)/5+1=1第5行,页数=(5-1)/5+1=1第6行,页数=(6-1)/5+1=2第7行,页数=(7-1)/5+1=2第8行,页数=(8-1)/5+1=2第9行,页数=(9-1)/5+1=2第10行,页数=(10-1)/5+1=2第11行,页数=(11-1)/5+1=3……

Access的SQL查询分页语句是什么

分页查询就是 比如 数据库是 30条数据 你每次查询10条出来select to 10 * from 表 查询 10条 点 下一页的话就是 查询出 1到10的数据select to 20 * from 表 where id not in (select to 10 id from 表) 查询出 查询出 11到20的数据一次类推

怎样实现数据库的分页查询

针对查询语句做处理,同时对请求页面地址做分析list.aspx?pageid=5 //表示访问第五页后台语言里,先对查询条件做预处理pagepre=pagesize*4 //pagesize 用于表示分页大小,例如10,则前4页共有40条记录查询语句sqlcmd=“select top “+pagesize+“ from tabelname where id not in (select top “+pagepre+“ from tablename order by id desc)“操作原理为将当前页前显示的所有记录从数据查询结果中排除,也就是not in 后面的部分,然后从剩余的结果冲,读取pagesize大小的记录值。筛选条件、排序条件放在子查询中

SQLServer 谁能给个2表连接加分页的查询公式

随便你怎么填!/****** 对象: StoredProcedure (@tblName nvarchar(200), ----要显示的表或多个表的连接@fldName nvarchar(500) = ’*’, ----要显示的字段列表@pageSize int = 10, ----每页显示的记录个数@page int = 1, ----要显示那一页的记录@pageCount int = 1 output, ----查询结果分页后的总页数@Counts int = 1 output, ----查询到的记录数@fldSort nvarchar(200), ----排序字段列表或条件@Sort bit = 0, ----排序方法,0为升序,1为降序(如果是多字段排列Sort指代最后一个排序字段的排列顺序(最后一个排序字段不加排序标记)--程序传参如:’ SortA Asc,SortB Desc,SortC ’)@strCondition nvarchar(2000) = null, ----查询条件,不需where@ID nvarchar(150), ----主表的主键@Dist bit = 0 ----是否添加查询字段的 DISTINCT 默认0不添加/1添加)ASSET NOCOUNT ONDeclare @sqlTmp nvarchar(1000) ----存放动态生成的SQL语句Declare @strTmp nvarchar(max) ----存放取得查询结果总数的查询语句Declare @strID nvarchar(1000) ----存放取得查询开头或结尾ID的查询语句Declare @strSortType nvarchar(10) ----数据排序规则ADeclare @strFSortType nvarchar(10) ----数据排序规则BDeclare @SqlSelect nvarchar(50) ----对含有DISTINCT的查询进行SQL构造Declare @SqlCounts nvarchar(50) ----对含有DISTINCT的总数查询进行SQL构造if @Dist = 0begin set @SqlSelect = ’select ’ set @SqlCounts = ’Count(*)’endelsebegin set @SqlSelect = ’select distinct ’ set @SqlCounts = ’Count(DISTINCT ’+@ID+’)’endif @Sort=0begin set @strFSortType=’ ASC ’ set @strSortType=’ DESC ’endelsebegin set @strFSortType=’ DESC ’ set @strSortType=’ ASC ’end--------生成查询语句----------此处@strTmp为取得查询结果数量的语句if @strCondition is null or @strCondition=’’ --没有设置显示条件begin set @sqlTmp = @fldName + ’ From ’ + @tblName set @strTmp = @SqlSelect+’ @Counts=’+@SqlCounts+’ FROM ’+@tblName set @strID = ’ From ’ + @tblNameendelsebegin set @sqlTmp = + @fldName + ’From ’ + @tblName + ’ where (1》0) ’ + @strCondition set @strTmp = @SqlSelect+’ @Counts=’+@SqlCounts+’ FROM ’+@tblName + ’ where (1》0) ’ + @strCondition set @strID = ’ From ’ + @tblName + ’ where (1》0) ’ + @strConditionend----取得查询结果总数量-----exec sp_executesql @strTmp,N’@Counts int out ’,@Counts outdeclare @tmpCounts intif @Counts = 0 set @tmpCounts = 1else set @tmpCounts = @Counts --取得分页总数 set @pageCount=(@tmpCounts+@pageSize-1)/@pageSize /**//**当前页大于总页数 取最后一页**/ if @page》@pageCount set @page=@pageCount --/*-----数据分页2分处理-------*/ declare @pageIndex int --总数/页大小 declare @lastcount int --总数%页大小 set @pageIndex = @tmpCounts/@pageSize set @lastcount = @tmpCounts%@pageSize if @lastcount 》 0 set @pageIndex = @pageIndex + 1 else set @lastcount = @pagesize --//***显示分页 if @strCondition is null or @strCondition=’’ --没有设置显示条件 begin if @pageIndex《2 or @page《=@pageIndex / 2 + @pageIndex % 2 --前半部分数据处理 begin set @strTmp=@SqlSelect+’ top ’+ CAST(@pageSize as VARCHAR(4))+’ ’+ @fldName+’ from ’+@tblName +’ where ’+@ID+’ not in(’+ @SqlSelect+’ top ’+ CAST(@pageSize*(@page-1) as Varchar(20)) +’ ’+ @ID +’ from ’+@tblName +’ order by ’+ @fldSort +’ ’+ @strFSortType+’)’ +’ order by ’+ @fldSort +’ ’+ @strFSortType end else begin set @page = @pageIndex-@page+1 --后半部分数据处理 if @page 《= 1 --最后一页数据显示 set @strTmp=@SqlSelect+’ * from (’+@SqlSelect+’ top ’+ CAST(@lastcount as VARCHAR(4))+’ ’+ @fldName+’ from ’+@tblName +’ order by ’+ @fldSort +’ ’+ @strSortType+’) AS TempTB’+’ order by ’+ @fldSort +’ ’+ @strFSortType else set @strTmp=@SqlSelect+’ * from (’+@SqlSelect+’ top ’+ CAST(@pageSize as VARCHAR(4))+’ ’+ @fldName+’ from ’+@tblName +’ where ’+@ID+’ not in(’+ @SqlSelect+’ top ’+ CAST(@pageSize*(@page-2)+@lastcount as Varchar(20)) +’ ’+ @ID +’ from ’+@tblName +’ order by ’+ @fldSort +’ ’+ @strSortType+’)’ +’ order by ’+ @fldSort +’ ’+ @strSortType+’) AS TempTB’+’ order by ’+ @fldSort +’ ’+ @strFSortType end end else --有查询条件 begin if @pageIndex《2 or @page《=@pageIndex / 2 + @pageIndex % 2 --前半部分数据处理 begin set @strTmp=@SqlSelect+’ top ’+ CAST(@pageSize as VARCHAR(4))+’ ’+ @fldName +’ from ’+@tblName +’ where ’+@ID+’ not in(’+ @SqlSelect+’ top ’+ CAST(@pageSize*(@page-1) as Varchar(20)) +’ ’+ @ID +’ from ’+@tblName +’ Where (1》0) ’ + @strCondition + ’ order by ’+ @fldSort +’ ’+ @strFSortType+’)’ +’ ’ + @strCondition + ’ order by ’+ @fldSort +’ ’+ @strFSortType end else begin set @page = @pageIndex-@page+1 --后半部分数据处理 if @page 《= 1 --最后一页数据显示 set @strTmp=@SqlSelect+’ * from (’+@SqlSelect+’ top ’+ CAST(@lastcount as VARCHAR(4))+’ ’+ @fldName+’ from ’+@tblName +’ where (1》0) ’+ @strCondition +’ order by ’+ @fldSort +’ ’+ @strSortType+’) AS TempTB’+’ order by ’+ @fldSort +’ ’+ @strFSortType else set @strTmp=@SqlSelect+’ * from (’+@SqlSelect+’ top ’+ CAST(@pageSize as VARCHAR(4))+’ ’+ @fldName+’ from ’+@tblName +’ where ’+@ID+’ not in(’+ @SqlSelect+’ top ’+ CAST(@pageSize*(@page-2)+@lastcount as Varchar(20)) +’ ’+ @ID +’ from ’+@tblName +’ where (1》0) ’+ @strCondition +’ order by ’+ @fldSort +’ ’+ @strSortType+’)’ + @strCondition +’ order by ’+ @fldSort +’ ’+ @strSortType+’) AS TempTB’+’ order by ’+ @fldSort +’ ’+ @strFSortType end end------返回查询结果-----exec sp_executesql @strTmp print @strTmpSET NOCOUNT OFF 这已经是很成熟的了。。。。很精简。。你要分页的话基本都是输入这点参数。50万条数据测试5秒内另外,团IDC网上有许多产品团购,便宜有口碑

什么叫“分页查询”

分页查询,是一种操作系统里存储器管理的一种技术,可以使电脑的主存可以使用存储在辅助存储器中的数据。操作系统会将辅助存储器(通常是磁盘)中的数据分区成固定大小的区块,称为“页”(pages)。当不需要时,将分页由主存(通常是内存)移到辅助存储器;当需要时,再将数据取回,加载主存中。相对于分段,分页允许存储器存储于不连续的区块以维持文件系统的整齐。分页是磁盘和内存间传输数据块的最小单位。

扩展资料:

分页查询的页面调度类型

1、当需要用到数据时再向系统请求,使系统将数据由辅助存储器传入存储器上,这就叫“需求分页”。它使得系统不需要将全部的程序都放在存储器上,减少了所需要的存储器的数量。所有现代系统都使用按需页面调度(paging)的方式。

2、当系统查看分页表时认为某些数据可能需要用到,而先将数据传到存储器上的行为,就叫做“先行分页”, 当存储器够大的话通常会采取这种方式。

3、Unix系统会定期使用sync程序来清理所有经过更动的帧,它会将所有被更动过的帧存到辅助存储器中。Windows系统有时亦会进行类似功能的操作,它可以使新程序在打开时更快速。

用excel中的分类汇总进行分页计算

朋友是建筑公司的一名预算员,一般都是用excel表格做预算清单,每次做了最后总计还需要每一页的分页小计,当初为了学习分页统计可蛮烦坏他了,经过我的指导他在用excel中的分类汇总进行分页计算就解决了这个问题。1、准备第一步:打开需要分页合计的工作表―“预算”工作表,按住Ctrl键拖动“预算”工作表标签复制出另一张工作表“预算(2)”,右击其标签重命名为“分页小计”。在“分页小计”工作表A1单元格中输入=预算!A1,选中A1单元格进行复制,再选中全部有字的区域(假设为A1:L100),执行“→选择性粘贴”选项,选中“公式”确定后进行粘贴。从菜单栏的“工具→选项→视图”中取消“零值”选项前的“√”。这样可以得到一张与原表完全一样的表格,连数据也会随原表更改。第二步:执行“文件→打印预览”选项,确认一下一页中要打印多少行数据(计算时只计数据行不含标题),例子中的表格是每页12行。执行“文件→页面设置→工作表”选项,在“顶端标题行”中输入$1:$3,设置重复标题行为1至3行。2、页页小计第一步:在最后一列后面增加一列(K列),输入标题为页码,在下面的K4单元格输入公式为=IF(J4=“,“,INT((ROW()-3)/12)+1),把公式复制到K列的各个单元格中。公式中的12为每页可打印的行数,(ROW()-3)中的3为表头所占的行数。第二步:选中全部数据区域,包括我们增加的K列(例:A3:K100)。执行“数据→分类汇总”选项,在弹出“分类汇总”窗口中设置“分类字段”为页码、“汇总方式”为求和,在“选定汇总项”中选中要汇总的项目(注意:页码也一定要选中),并选中下面的“每组数据分页”和“汇总结果显示在数据下方”复选框。单击“确定”按钮后,就可以看到分页小计和合计了,不过在此的分页小计显示为:1 汇总、2 汇总……还要再执行“→替换”选项,查找“* 汇总”替换为“分页小计”。分页小计所在列不够宽时,右侧文字会被遮住,此时只要选中小计所在列(E列)设置为右对齐即可解决,过多的文字会自动往左跨列显示。3、打印及维护最后,右击K列列标,选择“隐藏”把K列隐藏起来,就可以进行打印了。以后改变数据,只要没有增加数据行就不需要再修改了,你完全可以直接打印。当然,如果增加了数据行也没问题,只要通过执行“数据→分类汇总”选项,单击“全部删除”按钮,删除已有汇总,然后再重复分类汇总这一步骤即可。如果原“预算”工作表中进行了删除或插入行操作,那么,我们将不得不重复全部的公式复制和分页小计操作。所以,如果你要处理的表格经常需要删除或插入行,那么,还是直接在原表上按步骤进行设置会更方便,反正全部也只有两步而已,只是在打印后删除分类汇总就是了。4、需要注意什么第一、分类汇总时,必须选中要汇总的区域进行设置,否则,最下面无数据的空行也会列入汇总。因为左侧无数据时K列中的相应单元格虽然为空,但单元格中毕竟有公式并非空白。当然,如果你一开始是通过双击K2单元格的填充柄进行公式复制的话,那么它只会填充到左侧有数据的单元格中,也就没这问题了。不过,那样做以后增加数据时就得重新复制K列的公式,也不见得会更方便,可按表格的用途决定使用哪一种填充。第二、若只想要分页小计的数据而不需要多余的文字,那么分类汇总时,只要在汇总项中不选中“页码”,这些1汇总、2 汇总…等字就可在最后和K列一起被隐藏起来。此外,如果你想直接在指定位置填写“分页小计”也行,首先,分类汇总时汇总项中不要选中“页码”,然后选中要填写的C列中全部数据区域(例:C4:C109),单击菜单栏的“→定位…”,在弹出的“定位”窗口中单击“定位条件”按钮,在定位条件窗口中选中“空白”选项,单击“确定”按钮。这样,选中的就是全部分页小计所在行的空白单元格。然后输入“分页小计”四个字,再按Ctrl+回车键,就可以同时在选中的单元格中输入分页小计。