ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 排序后,查询某个范围的记录

排序后,查询某个范围的记录

原创 Linux操作系统 作者:hjgluguo 时间:2009-07-18 22:03:53 0 删除 编辑

有表ord(ordseq, ordno, ctrpty, orddt), 其中ordseq为number型,ordno和ctrpty为varchar2型,而orddt为日期型,查询显示ord表按ordseq排序后第21至30条记录

首先按ordseq排序查询ord表,看都有什么内容

SELECT ord.ordseq, ord.ordno, ord.ctrpty, ord.orddt FROM ORD ORDER BY ordseq;

最终实现此功能的查询语句为:

select *
  from (select res1.ordseq, res1.ordno, res1.ctrpty, res1.orddt, rownum as sortid
          from (select ord.ordseq, ord.ordno, ord.ctrpty, ord.orddt from ord order by ordseq) res1) res2
 where res2.sortid > 20
   and res2.sortid < 31

其中rownum必需要用别名,否则写成res2.rownum会报错,而直接写成rownum得到的结果为空,还有就是rownum不能跟order by 在同一查询中,否则得到的结果不对

截图00.jpg

截图01.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7865774/viewspace-609600/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 一些面试题
请登录后发表评论 登录
全部评论

注册时间:2008-07-11

  • 博文量
    97
  • 访问量
    181490