数据库查询怎么分页

数据库查询怎么分页,第1张

方法1: 适用于 SQL Server 2000/2005 SELECT TOP 页大小 FROM table1 WHERE id NOT IN ( SELECT TOP 页大小(页数-1) id FROM table1 ORDER BY id ) ORDER BY id 方法2: 适用于 SQL Server 2000/2005 SELECT TOP 页大小 FROM table1 WHERE

select top /显示条数/ from table_A where id not in (select top /(页码-1)显示条数/ id from table_A)

1使用T_BASE_PROVINCE表作为测试演示使用

2查询下总共数据量selectcount()fromT_BASE_PROVINCE,在分页的时候,一般会显示总页数,需要先查询总数据量得到总页数,总页数=总量/每页显示记录数。

3前面的测试数据初始化完成之后,查询前20条大概有什么样的数据。

4含orderby排序,多一层嵌套,因为orderby在select之后执行,不在里面写的话可能会出现不是预期的排序结果。

如以上回答未能解决问题请看:

一种是利用相反的。

使用minus,即中文的意思就是减去。

一种是利用Oracle的rownum,这个是Oracle查询自动返回的序号,一般不显示,但是可以通过selectrownumfrom[表名],可以看到,是从1到当前的记录总数。  

你的页面跳转, 要把原来有的get参数一同传递下去!

因为, 如果你第一页就是根据相关get参数查询的数据库, 而你在下一页没有提供这个参数, 当然会查询不到!

get参数是在当前页面有效的, 一般, get参数是url提供, 你url有就有, 没有就没有, 不是你提供一次, 人家就会给你保存一辈子!

例外, 你这个php文件, 功能其实很简单对吧?但你有没有觉得, 代码密密麻麻呢?

如果让你写一个大型网站, 那你的代码岂不是要用东风牌大卡车来装呢?

<!--列表-->

<%

connopen connsdiv

set rs=serverCreateObject("adodbrecordset")

sql="select from test order by id desc"

rsOpen sql,conn,1,1

page=requestquerystring("page")

if page="" then

page=1

else

page=Cint(page)

end if

Section=requestquerystring("section")

if Section="" then

Section=1

else

Section=Cint(Section)

end if

'变量赋值

intPageSize=5 '每页显示记录数

intSectionSize=5 '多少页为一段,像GOOGLE一样

PrevSectionText="<FONT face=webdings>7</FONT>" '上一段的链接文字

NextSectionText="<FONT face=webdings>8</FONT>" '下一段的链接文字

PrevPageText="<FONT face=webdings>3</FONT>" '上页的链接文字

NextPageText="<FONT face=webdings>4</FONT>" '下页的链接文字

strPageUrl="t=" & strQueryString

rspagesize=intPageSize

intCount=rsRecordCount

intPageCount=rspagecount

intSectionCount=(intPageCount - 1) \ intSectionSize + 1

if intCount>0 then

rsAbsolutePage=page

end if

for i=1 to intPageSize

if rseof then exit for

responseWrite("<a herf="&id&">")

responseWrite("<font>"&rs("aa")&"</font>")

responseWrite("<a>")

rsmovenext

next

%>

<!--列表结束-->

<!--翻页按钮-->

<font>共有<%=intCount%>记录,分<%=intPageCount%>页,当前页<%=Page%>,每页显示<%=intPageSize%>条记录

<%

'计算每一段的开始页

intStarPage=(Section-2) intSectionSize + 1

'前一段

if Section<=1 then

responseWrite(PrevSectionText & " ")

else

responseWrite("<a href='" & strPageUrl & "&page=" & intStarPage & "&section=" & Section-1 & "'>" & PrevSectionText & "</a> ")

end if

'显示页码列表

responseWrite("第")

intStarPage=(Section-1) intSectionSize + 1

for p=intStarPage to intStarPage + intSectionSize - 1

if p > intPageCount then exit for

if p=page then

responseWrite("<strong>[" & p & "]</strong> ")

else

responseWrite("<a href='" & strPageUrl & "&page=" & p & "&section=" & Section & "'>[" & p & "]</a> ")

end if

next

responseWrite("页")

'后一段

intStarPage=(Section) intSectionSize + 1

if Section>=intSectionCount then

responseWrite(" " & NextSectionText)

else

responseWrite(" <a href='" & strPageUrl & "&page=" & intStarPage & "&section=" & Section+1 & "'>" & NextSectionText & "</a> ")

end if

%>

<select name="page" size="1" onChange="windowlocation='<%=strPageUrl & "&section="%>' + (Mathfloor((parseInt(thisvalue)-1)/<%=intSectionSize%>)+1) + '<%="&page="%>' + thisvalue">

<option value="<%=page%>" selected>第<%=page%>页</option>

<%

for i=1 to rspagecount

%>

<option value="<%=i%>" >第<%=i%>页</option>

<%

next

%>

</select>

</font>

<!--翻页按钮结束-->

以上就是关于数据库查询怎么分页全部的内容,包括:数据库查询怎么分页、数据库怎么进行分页查询、如何实现Oracle数据库的分页显示等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10167635.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存