Oracle、Sqlserver与Mysqkll分页查询

Oracle

   SELECT * FROM (
           SELECT A.*, ROWNUM RN   FROM (

            SELECT * FROM TABLE_NAME       ) A

            WHERE ROWNUM <= 40

      ) WHERE RN >= 21


Mysql

    几千上万条数据直接用自带的limit函数就能解决

    select * from table limit(m,n);//从m开始取n条数据,索引从0开始表示第一条数据,从m+1条数据开始取那条数据

    如果是百万级别的数据就得换写法了

    select * from table where (select * from table limit(500000,1) limit 10;


SqlServer    

  1、SELECT TOP 页大小 * FROM table1 WHERE id NOT IN ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id ) ORDER BY id

   2、SELECT TOP 页大小 * FROM table1 WHERE id > ( SELECT ISNULL(MAX(id),0) FROM ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id ) A ) ORDER BY id

  3、SELECT TOP 页大小 * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1 ) A WHERE RowNumber > 页大小*(页数-1)

Oracle、Sqlserver与Mysqkll分页查询,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。