问答详情
源自:5-2 案例1

有点小疑问

select rownum,empno,ename,sal from emp order by sal desc这查询出来的结果薪水是按照降序排列,但是rownum不是混乱的吗?

提问者:qq_蓝色梦魇_03236279 2016-10-10 18:36

个回答

  • 枫7583118
    2017-03-05 19:55:33

    SELECT * FROM  ( SELECT rownum r, e.empno, e.ename, e.sal

                                        FROM (SELECT * from emp ORDER BY sal DESC) e)

    WHERE r>=5 AND r<=8 ;

    这样确实可以得出一样的结果

    http://img.mukewang.com/58bbfca20001251908070296.jpg

  • Boler_MGL
    2016-10-29 11:37:48

    就是的  感觉最里面那一层的rownum 不需要写,最里面只是完成了重新排序,然后外面的一层在生成行号,其实这样的就可以查出来

    SELECT * FROM  ( SELECT rownum r, e.empno, e.ename, e.sal

                                        FROM (SELECT * from emp ORDER BY sal DESC) e)

    WHERE r>=5 AND r<=8 ;

  • danteliujie
    2016-10-13 23:14:45

    不会混乱,rownum是伪列,不是真实的数据

    这里会自动列成1.2.3.4这样的递增,

    老师讲课中有提到这一点