您的位置:首页 > 数据库

分页显示的SQL语句应该如何写

2006-07-27 14:16 295 查看
分页显示的SQL语句应该如何写
如果在第一页面显示1-10条记录,翻到第二页以后显示11-20条记录,第三野显示21-30,依次类推,请问SQL语句如果写才能只选择1-10条,11-20条,20-30等等?



  


楼主

03-03-14 08:44
[ 大 中 小 ]   

  






qiaoyu
积极应变



注册日期: 2001 Sep
来自: ChongQing
技术贴数:150
论坛积分:1337
论坛排名:1322
论坛徽章:2



    
      
这不是在sql里完成的,是在你的页面编程里完成的。

__________________
有罪众生,至彼受苦,无有间隙,故名无间。成实论言此地狱有五间:一者趣果无间,二者受苦无间,三者时无间,四者命无间,五者形无间



  http://www.itpub.net/postings.php?s=87fa0366be65090c638e6ac318b2de72&action=getip&postid=574068" target=_blank>


2楼

03-03-14 08:48
[ 大 中 小 ]   

  






zxyding
中级会员

注册日期: 2002 Dec
来自: 北京
技术贴数:171
论坛积分:1592
论坛排名:1125
论坛徽章:1


     
      
采用集合的概念,用top或者用rowno

__________________
莫问前尘,走遍千山万水我独行



  


3楼

03-03-14 10:51
[ 大 中 小 ]   

  






wmgreat
初级会员

注册日期: 2002 Nov
来自:
技术贴数:21
论坛积分:234
论坛排名:7271
论坛徽章:0

      
      
以上两位说的都不太符合我的想法,把查询出来的结果集放到容器里面,在放到session里面,性能太低.
我希望能够定位的sql语句



  


4楼

03-03-14 12:37
[ 大 中 小 ]   

  






chelly8888
中级会员



注册日期: 2003 Mar
来自: 上海
技术贴数:190
论坛积分:694
论坛排名:2613
论坛徽章:1


     
 
     
这个好像要通过程序里面来控制分页的吧!



  


5楼

03-03-14 12:50
[ 大 中 小 ]   

  






chelly8888
中级会员



注册日期: 2003 Mar
来自: 上海
技术贴数:190
论坛积分:694
论坛排名:2613
论坛徽章:1


     
      
通过PL/SQL把取出来的结果集放到几个游标或者变量中即可

__________________
注册公司的来这里看看,保证迅速快捷,价格便宜:
www.zhan-xin.com
www.sity.com.cn



  


6楼

03-03-14 12:53
[ 大 中 小 ]   

  






lander
中级会员

注册日期: 2002 Nov
来自: 上海
技术贴数:140
论坛积分:369
论坛排名:4829
论坛徽章:0

      
      
Re: 分页显示的SQL语句应该如何写

 

__________________
=====================
探索Oracle,探索奥秘
QQ:2365506
MSN:lander1216@hotmail.com
=====================



  



quote: 最初由 wmgreat 发布
如果在第一页面显示1-10条记录,翻到第二页以后显示11-20条记录,第三野显示21-30,依次类推,请问SQL语句如果写才能只选择1-10条,11-20条,20-30等等?

拙见:不知能否可以利用Primary Key、Index或Rowid
7楼

03-03-14 22:29
[ 大 中 小 ]   

  






jlandzpa
版主



注册日期: 2001 Oct
来自: guangzhou
技术贴数:12761
论坛积分:99614
论坛排名:7
论坛徽章:5




   
      
这个问题以前热烈讨论过,查查。

__________________
提供网络,主机,数据库,存储,机房装修,MIS的开发等服务.
my blog: http://blog.itpub.net/jlandzpa mail: 我的id@itpub.net

“农民真苦,农村真穷,农业真危险。”2002年,时任湖北省监利县棋盘乡党委书记的李昌平,用13个字概括出中国“三农”问题。

[...TOM...]性能是设计出来,而非调整出来的.

丛飞是个好人,但个人觉得做好事也应该有限度;而那些受到丛飞帮助的人也应该有个感恩的心,不能太过分无耻了。
心寒:看看这些接受从飞捐助的人:http://ent.icxo.com/htmlnews/2006/04/29/845968_0.htm



  


8楼

03-03-14 23:00
[ 大 中 小 ]   

  






lodge
肥猫猫



注册日期: 2002 Dec
来自:
技术贴数:3356
论坛积分:54004
论坛排名:25
论坛徽章:10



    
      
说说, 我正在使用的方法(不是我的设计)
所有此类查寻, 都分成两步, 第一步, 找到所有符合条件的PK(如有可能可以使用ROWID来做), 再把PK做成LIST保存到SESSION里
第二步, 分析页面传来的控制信息, 如, 起始记录的位置, 欲表示记录的件数, 取得要表示的KEY, 做循环, 逐条查出表示数据,

这样做的缺点是效率不是很高, 优点是程序代码结构清晰, 思路明确, 容易规范化, 模块之间依赖性很小, 适合分散开发的大型系统.

__________________





  


9楼

03-03-15 01:17
[ 大 中 小 ]   

  






armok
版主

注册日期: 2002 Nov
来自: 广州
技术贴数:569
论坛积分:1894
论坛排名:915
论坛徽章:2



    
      
不用这么复杂啊。SQL里的确可以实现分页的。

我开发过一个论坛: www.oracle-dev.com , 是使用jsp+oracle, 就是使用这个方法。

有关的语句如下:

int bottom=(bbsPageNo-1)*pageLine; //bbsPageNo 为页码, pageLine为每页显示的数目
int top=bbsPageNo*pageLine+1; //bottom 为该页结束记录数,top 为该页起始记录数

String sql=" select * from (select rownum auto_id,locked,serial_no,content_str,deleted,parent_no,title,speaker,click_num,face,valued,translation,picture,creative,guide,movie,attop,if_newtopic,last_reply_time,to_char(last_reply_time,'mm-dd,hh24:mi') last_reply_time_str,last_reply_speaker,reply_count "
+" from (select serial_no,locked,replace(replace(last_reply_content,'<br>',' '),'''','‘') content_str,deleted,parent_no,title,speaker,click_num,face,valued,translation,picture,creative,guide,movie
,attop,decode(sign(sysdate-issue_time-"+ newtopic_time/24 +"),-1,'y',null) if_newtopic,last_reply_time,reply_count ,last_reply_speaker "
+" from "+topics_table+" order by attop,last_reply_time desc)) "
+" where auto_id>"+bottom+" and auto_id<"+top;

__________________
我的主页 http://61.144.28.248/dev 欢迎讨论developer开发问题

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息