为了账号安全,请及时绑定邮箱和手机立即绑定

有点小疑问

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

正在回答

3 回答

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://img1.sycdn.imooc.com//58bbfca20001251908070296.jpg

0 回复 有任何疑惑可以回复我~

就是的  感觉最里面那一层的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 ;

1 回复 有任何疑惑可以回复我~

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

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

老师讲课中有提到这一点

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Oracle高级查询
  • 参与学习       62758    人
  • 解答问题       144    个

数据库开发中应用广泛的高级查询,本教程通过大量的案例详细讲解

进入课程

有点小疑问

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信