zoukankan      html  css  js  c++  java
  • Oracle、MySql、SQLServer 数据分页查询

    sqlserver2005的分页查询

    在sqlserver2005之前一直借助top关键字来实现分页查询,不过效率低,在sqlserver2005及其之后的版本都使用row_number()解析函数来完成分页查询,效率有了很大的提高,不过sql语句比较复杂,下面给出分页查询的通式:

    /*
    
    * firstIndex:起始索引
    
    * pageSize:每页显示的数量
    
    * orderColumn:排序的字段名
    
    * sql:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句
    
    */
    
    select top pageSize o.* from (select row_number() over(order by orderColumn) as rownumber,* from(sql) as o where rownumber>firstIndex;
    

      

    四种方式实现SQLServer 分页查询

    oracle分页查询

    ①ROWNUM查询分页通式:

    /*
    * firstIndex:起始索引
    * pageSize:每页显示的数量
    * sql:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句
    */
    select * from(select a.*,ROWNUM rn from(sql) a where ROWNUM<=(firstIndex+pageSize)) where rn>firstIndex
    

    ②row_number()解析函数分页查询通式:

     /*
     * firstIndex:起始索引
     * pageSize:每页显示的数量
     * orderColumn:排序的字段名
     * sql:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句
     */
    select * from(select * from(select t.*,row_number() over(order by orderColumn) as rownumber from(sql) t) p where p.rownumber>firstIndex) where rownum<=pageSize
    

      

    mysql的分页查询

     mysql的分页查询是最简单的,借助关键字limit即可实现查询,查询语句通式:

    /*
    * sql:可以是单表的查询语句,也可以是多表的联合查询语句
    * firstIndex:其实的索引
    * pageSize:每页显示的记录数
    */
    
    select o.* from (sql) o limit firstIndex,pageSize
    

      

  • 相关阅读:
    Typora入门使用
    什么是Structed Streaming?
    Spark的join什么情况下可以避免shuffle?
    spark Executor启动过程分析
    在IDEA中使用Git
    Git和SVN的区别
    Flink on Yarn的两种模式
    如何查看执行计划
    SQL Server 堆表与栈表的对比(大表)
    SQL Server中CURD语句的锁流程分析
  • 原文地址:https://www.cnblogs.com/weixing/p/5848328.html
Copyright © 2011-2022 走看看