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

    1。ROW_NUMBER方式

    1     WITH Paging AS
    2     (
    3         SELECT *
    4                , ROW_NUMBER() OVER (order by ID DESC) AS RowNumber
    5         FROM [TableName]
    6     ) 
    7     SELECT *
    8     FROM Paging
    9     WHERE RowNumber > 0 AND RowNumber <= 10

     

    2。OFFSET 方式

    1   SELECT *
    2   FROM [TableName]
    3   ORDER BY ID DESC
    4   OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY;

     这种方式有一定的灵活性,可以使用变量传入分页参数,如:

    1   ORDER BY ID DESC 
    2   OFFSET ( @PageIndex - 1 ) * @PageSize ROWS
    3   FETCH NEXT  @PageSize ROWS ONLY

    以下是OFFSET的官方解释:(参考地址:https://msdn.microsoft.com/zh-cn/magazine/gg699618(SQL.110).aspx)

    OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }

    指定在从查询表达式中开始返回行之前,将跳过的行数。OFFSET 子句的参数可以是大于或等于零的整数或表达式。ROW 和 ROWS 可以互换使用。

    FETCH { FIRST|NEXT } <行计数表达式> { ROW|ROWS } ONLY

    指定在处理 OFFSET 子句后,将返回的行数。FETCH 子句的参数可以是大于或等于 1 的整数或表达式。ROW 和 ROWS 可以互换使用。同样,FIRST 和 NEXT 可以互换使用。

    • ORDER BY 是使用 OFFSET 和 FETCH 子句所必需的。

    • OFFSET 子句必须与 FETCH 一起使用。永远不能使用 ORDER BY … FETCH。

    • TOP 不能在同一个查询表达式中与 OFFSET 和 FETCH 一起使用。

    • OFFSET/FETCH 行计数表达式可以是将返回整数值的任何算术、常量或参数表达式。该行计数表达式不支持标量子查询。

  • 相关阅读:
    long类型的数据转化为时间
    取到数组中对应位置的文字,并且转成大写
    无key值的json数组解析
    mongo-2ds索引对超过半球范围的适用性测试
    mongoDB-Cannot change the size of a document in a capped collection:
    springboot
    左中右布局的五种实现方式
    spring boot 常见的配置问题
    移动端H5拍照代码实现及外网部署
    JAVA数据库操作回滚小结
  • 原文地址:https://www.cnblogs.com/hzz521/p/4485353.html
Copyright © 2011-2022 走看看