zoukankan      html  css  js  c++  java
  • Sql 分页

    分页方案一:(利用Not InSELECT TOP分页)
    语句形式:
    SELECT TOP 10 *
    FROM TestTable
    WHERE (ID NOT IN
    (SELECT TOP 20 id
    FROM TestTable
    ORDER BY id))
    ORDER BY ID


    SELECT TOP
    页大小 *
    FROM TestTable
    WHERE (ID NOT IN
    (SELECT TOP
    页大小*页数 id
    FROM

    ORDER BY id))
    ORDER BY ID

    -------------------------------------

    分页方案二:(利用ID大于多少和SELECT TOP分页)
    语句形式:
    SELECT TOP 10 *
    FROM TestTable
    WHERE (ID >
    (SELECT MAX(id)
    FROM (SELECT TOP 20 id
    FROM TestTable
    ORDER BY id) AS T))
    ORDER BY ID


    SELECT TOP
    页大小 *
    FROM TestTable
    WHERE (ID >
    (SELECT MAX(id)
    FROM (SELECT TOP
    页大小*页数 id
    FROM

    ORDER BY id) AS T))
    ORDER BY ID

    -------------------------------------

    分页方案三:(利用SQL的游标存储过程分页)
    create procedure XiaoZhengGe
    @sqlstr nvarchar(4000), --
    查询字符串
    @currentpage int, --
    N
    @pagesize int --
    每页行数
    as
    set nocount on
    declare @P1 int, --P1
    是游标的id
    @rowcount int
    exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
    select ceiling(1.0*@rowcount/@pagesize) as
    总页数--,@rowcount as 总行数,@currentpage as 当前页
    set @currentpage=(@currentpage-1)*@pagesize+1
    exec sp_cursorfetch @P1,16,@currentpage,@pagesize
    exec sp_cursorclose @P1

    set nocount off

     -------------------------------------

     分页方案四:(利用SqlServer2005中的新特性ROW_NUMBER进行分页)

    Select * FROM (
      select ROW_NUMBER()Over(order by cf_id desc) as rowId,* from T_Test
    ) as mytable
    where rowId between 21 and 40


    其它的方案:如果没有主键,可以用临时表,也可以用方案三做,但是效率会低。
    建议优化的时候,加上主键和索引,查询效率会提高。

    通过SQL 查询分析器,显示比较:我的结论是:

    分页方案一:(利用Not InSELECT TOP分页) 效率较高,需要拼接SQL语句

    分页方案二:(利用ID大于多少和SELECT TOP分页)效率次之,需要拼接SQL语句

    分页方案三:(利用SQL的游标存储过程分页) 效率最差,但是最为通用

    分页方案四:(利用SqlServer2005中的新特性ROW_NUMBER进行分页) 效率最高,但是仅支持2005以上的版本


  • 相关阅读:
    Ed Chi 的 long range dependence works
    论文阅读:Stochastic Weight Completion for Road Networks using Graph Convolutional Networks
    论文阅读:HOP-Rec: High-Order Proximity for Implicit Recommendation
    温故BERT之Transformer
    论文阅读:Are We Really Making Much Progress-A Worrying Analysis of Recent Neural Recommendatin Approaches
    使用ffmpeg进行媒体格式转换
    使用ghostscript将pdf转图片
    linux下使用libreoffice将Office文档转PDF
    nginx指定文件路径有两种方式root和alias
    CentOS下的SVN服务器搭建过程
  • 原文地址:https://www.cnblogs.com/myssh/p/1394981.html
Copyright © 2011-2022 走看看