遇到项目,需要按照结束时间从最近的开始排序,首先思路就是先排序,再分页,分页是按照每页10行,也就是第一页查询行号1-10的数据来实现;

1.先查询数据并排序

        select row_number() over(order by ROWNUM) as rn,to_char(bp.startdate, 'yyyy-mm-dd HH:mi:ss') "startdate",to_char(bp.enddate, 'yyyy-mm-dd HH:mi:ss') "enddate"from T_Client_Policy cpleft join T_Bus_Policy bpon cp.policyno = bp.policynoand cp.riskcode = bp.riskcodewhere cp.clientno = '200054382009' order by enddate desc

查询后排序正常

2.输出行号为1-10的数据

select *from (select row_number() over(order by ROWNUM) as rn,to_char(bp.startdate, 'yyyy-mm-dd HH:mi:ss') "startdate",to_char(bp.enddate, 'yyyy-mm-dd HH:mi:ss') "enddate"from T_Client_Policy cpleft join T_Bus_Policy bpon cp.policyno = bp.policynoand cp.riskcode = bp.riskcodewhere cp.clientno = '200054382009' order by enddate desc)where rn between 1 and 10

发现数据并的结束日期并没有按照2019年为最开始往下排序

查看原因,发现结束日期并不是我们想象中的2019排在最前边,仔细看看,是定义的行号不对,

原因:SQL在进行查询的时候,先查询后排序,所以,我们需要在外边加一层已经排序好的sql,对最外层进行行号取1-10行为一进行分页

正确:

select *from (select row_number() over(order by ROWNUM) as rn, startdate, enddatefrom (select to_char(bp.startdate, 'yyyy-mm-dd HH:mi:ss') startdate,to_char(bp.enddate, 'yyyy-mm-dd HH:mi:ss') enddatefrom T_Client_Policy cpleft join T_Bus_Policy bpon cp.policyno = bp.policynoand cp.riskcode = bp.riskcodewhere cp.clientno = '200054382009'order by enddate desc))where rn between 1 and 10

【SQL】order by 分页排序相关推荐

  1. Sql order by 数据排序 优先级问题

    前几天学习T-SQL ,在介绍Order By 排序的时候,突然想到多字段排序的时候优先级是按什么顺序排的,我便上机操作了一下,写此笔记,帮助记忆,也希望能帮到其他人. select * from 表 ...

  2. mybatis动态查询(分页排序搜索)+分解关联查询+Logback 日志配置(打印sql到控制台)+mybatis新增记录后返回自增的id。批量=11/2~11/20

    一.mybatis动态查询(分页排序搜索) mybatis框架分页实现,有几种方式,最简单的就是利用原生的sql关键字limit来实现,还有一种就是利用interceptor来拼接sql,实现和lim ...

  3. oracle分页排序sql,oracle 排序分页 高效sql语句

    最好还是利用分析函数row_number() over ( partition by col1 order by col2 ) 比如想取出100-150条记录,按照tname排序 select tna ...

  4. SqlServer分页排序存储过程 V1.0

    set ANSI_NULLS ON  set QUOTED_IDENTIFIER ON  GO  /*  分页排序存储过程 V1.0  */ ALTER procedure [dbo].[sp_Key ...

  5. 在SQL Server中分页结果的最佳方法是什么

    如果您还希望获得结果总数(在进行分页之前),那么在SQL Server 2000.2005.2008.2012中对结果进行分页的最佳方法是(性能明智的)? #1楼 最终, Microsoft SQL ...

  6. SQL SERVER 通用分页存储过程

    SQL SERVER 通用分页存储过程 从SQLSERVER 2005开始,提供了Row_Number()函数,利用函数生成的Index来处理分页,按照正常的逻辑思维都是传pageIndex和page ...

  7. Sql Server通用分页存储过程

    sql server2000分页方式很多,效率吗  当到达10万级以上就有些吃力了,这里暂时不例出来了 sql server2005以上就有了row_number 也是一大进步,详情如下参考 Sql ...

  8. 一个不错的SQL储存过程分页,储存过程+Repeater,如果只是浏览数据的话,快就一个字...

    一个不错的SQL储存过程分页,储存过程+Repeater,如果只是浏览数据的话,快就一个字 CREATE PROCEDURE SelectPagedSQL (  @SQL nvarchar(512), ...

  9. 浅谈SQL Server数据库分页

    数据库分页是老生常谈的问题了.如果使用ORM框架,再使用LINQ的话,一个Skip和Take就可以搞定.但是有时由于限制,需要使用存储过程来实现.在SQLServer中使用存储过程实现分页的已经有很多 ...

最新文章

  1. pytest测试实战 电子书_pytest实战APL测试框架
  2. python七段数码管设计图案-Python 七段数码管绘制
  3. 全面布局大数据平台,银科控股签约神策数据
  4. uva 753(网络流最大流)
  5. PHP 在作为中间件时print无返回值问题
  6. 【.NET Core项目实战-统一认证平台】第七章 网关篇-自定义客户端限流
  7. Linux IPC实践(10) --Posix共享内存
  8. Linux 关闭网络管理服务
  9. 利用Spring的AbstractRoutingDataSource解决多数据源的读写分离问题
  10. php ajax加载,php – 什么更快? Ajax加载JSON或Ajax加载完整输出
  11. python colorama 横向打印_让python的print变得更好看——prettytable和colorama
  12. Android 游戏开发入门 视频+源码
  13. 02333软件工程_201910_试卷+答案
  14. 【Uly】微软产品开发中的“战争与和平”
  15. 2022全国职业技能大赛大数据技术与应用赛项赛题环境准备
  16. Android application 和 activity 标签详解
  17. 在树莓派3B+上部署Intel NCS2神经网络计算棒
  18. PostgreSQL的查询技巧: 零除, GENERATED STORED, COUNT DISTINCT, JOIN和数组LIKE
  19. python 依据某几列累加求和_如何用Python找出PSY超卖的股票?
  20. 做IAP远程升级时,APP程序地址修改了中断向量偏移地址不起效果的原因分析

热门文章

  1. Codevs 1222 信与信封问题 二分图匹配,匈牙利算法
  2. 顶尖os2x说明书_如何在OS X中创建安全说明
  3. CloudComparePCL 泊松曲面重建算法
  4. 【蓝桥杯08】——工厂灯光控制系统
  5. 密码学系列(三):区块链+密码学基础知识
  6. 2020年了,ERP真的快要消失了吗?
  7. clouder manager
  8. 微信小程序-豆瓣电影
  9. 递推法之-------核电站问题(超简洁代码!!!)
  10. Python实现“淘宝自动发货机器人”