当前位置:   article > 正文

oracle 先排序 再分页_数据库可以实现先排序再分页

数据库可以实现先排序再分页

转载自:https://www.cnblogs.com/lurenjia1994/p/9558663.html

叙述

针对 oracle 进行的优化

解决方案

按操作时间排序1

SELECT A.*, ROWNUM RN FROM (SELECT * FROM v_log) A ORDER BY operatetime DESC 

结果

可以发现,按时间排序了,但是rownum并不是从小到大,因为oracle是先生成rownum,再进行排序,需要在套一层查询

按操作时间排序2

  1. SELECT T.*, rownum RN FROM(
  2. SELECT * FROM (SELECT * FROM v_log) ORDER BY operatetime DESC
  3. ) T

结果

顺序正确,rownum正确,在此基础上再套一层查询进行分页

按操作时间排序并分页

  1. SELECT T2.* from(
  2. SELECT T.*, rownum RN FROM(
  3. SELECT * FROM (SELECT * FROM v_log) ORDER BY operatetime DESC
  4. )T) T2 WHERE RN BETWEEN 1 and 10

结果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/268596
推荐阅读
相关标签
  

闽ICP备14008679号