zoukankan      html  css  js  c++  java
  • Oracle之分页问题

    前面的Top-N问题使用了reownum,但是又遇到个分页问题,将表emp的4行为1页输出,前4行很好做:

    select rownum,empno,ename,sal
    from emp
    where rownum <=4;

    但是4--8行怎么输出呢?

    但是这样显然没结果;

    如果就是想要用 rownum > 4 这种条件的话话就要用嵌套语句,把 rownum 先生成,然后对他进行查询。

    我在查找资料时,发现是对子查询语句的rownum取了别名,where过滤时使用别名rn就可以正确显示,而使用rownum就不行。这是不是暗示rownum不能使用>或>=与=,但是别名可以呢。

    select *
    from(select rownum rn,empno,ename,sal
         from emp
         where rownum <=8)
    where rn>4;

    或者使用between...and...

    select * from(select rownum rn,empno,ename,sal
                  from emp)
    where rn between 5 and 8;

    结果:

     看来的确是这样的。

  • 相关阅读:
    HDU 3537
    POJ 1175
    POJ 1021 人品题
    POJ 2068
    POJ 2608
    POJ 2960
    poj 1635
    ustc 1117
    ural 1468
    数字游戏
  • 原文地址:https://www.cnblogs.com/Burgess-Fan/p/6793893.html
Copyright © 2011-2022 走看看