zoukankan      html  css  js  c++  java
  • 各种数据库分页语句整理以及Oracle数据库中的ROWNUM和ORDER BY的区别

    1.oracle数据库分页
    select * from (select a.*,rownum rc from 表名 where rownum<=endrow) a where a.rc>=startrow
     
    2.DB2数据库分页
    Select * from (select rownumber() over() as rc,a.* from (select * from 表名 order by 列名) as a) where rc between startrow and endrow
     
    3.SQL Server 2000数据库分页
    Select top pagesize * from 表名 where 列名 not  in(select top pagesize*page 列名 from  表名 order by 列名) order by 列名
     
    4.SQL Server 2005数据库分页
    Select * from (select 列名,row_搜索number() over(order by  列名1) as 别名from 表名) as t where t.列名1>=startrow and t.列名1<=endrow
     
    5.MySQL数据库分页
    Select * from 表名 limit startrow,pagesize
    (Pagesize为每页显示的记录条数)
     
    6.PostgreSQL数据库分页
    Select * from 表名 limit pagesize,offset startrow
    (Pagesize为每页显示的记录条数.)
     
     7.通用模式select * from (
     select * from tb_student where sid not in(
         select sid from tb_student where rownum<=(currentPage-1)*pageSize)
    ) where rownum <=pageSize;

    分页是将数据库的数据,利用一些特殊的sql语句来进行查询,显示理所应当显示的内容,更恰当的说可以是对SQL语句的灵活运用,对逻辑思维的简单使用

    Oracle数据库中的ROWNUM和ORDER BY执行顺序

    http://www.devx.com/tips/Tip/14251(原文出自地)

    SELECT firstname
    FROM   employee
    WHERE  ROWNUM < 5 
    ORDER BY empid

      empid如果是主键,这个语句可以返回期望的结果,按empid排序且rownum也是升序排列

      如果order by的字段不是主键,返回的结果按empid排序但rownum的顺序是乱的,和插入DB的时间有关

  • 相关阅读:
    第一次c++团队合作项目第三篇随笔
    第一次c++团队合作项目第二篇随笔
    第一次c++团队合作作业期间第一篇随笔
    电梯调度程序
    给我留下深刻印象的三位老师
    一个带有富文本功能的记事本
    我也忘了第几次团队作业
    关于复数输入输出的一点见解
    c++团队作业工作笔记
    又要开始新的征程了hhh(这次内容比较感兴趣)
  • 原文地址:https://www.cnblogs.com/lwlxqlccc/p/8675224.html
Copyright © 2011-2022 走看看