zoukankan      html  css  js  c++  java
  • SQL2008-分页显示3种方法

    方法1: 适用于 SQL Server 2000/2005/2008

    SELECT TOP 10 *

    FROM YieldRole

    WHERE id NOT IN

              (

              SELECT TOP (10*(1-1))  id FROM YieldRole ORDER BY id

              )

    ORDER BY id

     

    方法2: 适用于 SQL Server 2000/2005/2008 

     --顺序写法:

     SELECT TOP 10 *

     FROM YieldRole

     WHERE id >=

     (

     SELECT ISNULL(MAX(id),0) 

     FROM 

     (

     SELECT TOP (10*(2-1)+1) id FROM YieldRole ORDER BY id

     ) A

     )

     ORDER BY id

     

     --降序写法:

     SELECT TOP 10 *

     FROM YieldRole

     WHERE id <=

     (

     SELECT ISNULL(MIN(id),0) 

     FROM 

     (

     SELECT TOP (10*(2-1)+1) id FROM YieldRole ORDER BY id Desc

     ) A

     )

     ORDER BY id Desc

     

    方法3: 适用于 SQL Server 2000/2005/2008  

     SELECT TOP 10 * 

     FROM 

             (

             SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM YieldRole

             ) A

     WHERE RowNumber > 10*(2-1) 

    通过SQL 查询分析器,显示比较:我的结论是:
    分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句
    分页方案一:(利用Not In和SELECT TOP分页)   效率次之,需要拼接SQL语句
    分页方案三:(利用SQL的游标存储过程分页)    效率最差,但是最为通用

  • 相关阅读:
    模块
    javacript一键换肤
    ajax请求
    jquery获取元素的方法
    ajax请求里的contentType: "application/json"作用
    Underscore.js 入门-常用方法介绍
    .NET Core调用WCF的最佳实践
    证伪主义——科学与伪科学的量尺
    高效的筒仓
    此时此刻,一个项目正在走向失败
  • 原文地址:https://www.cnblogs.com/FKdelphi/p/4640594.html
Copyright © 2011-2022 走看看