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 行计数表达式可以是将返回整数值的任何算术、常量或参数表达式。该行计数表达式不支持标量子查询。

  • 相关阅读:
    CentOS下安装nginx并且升级nginx到最新版
    简单配置nginx使之支持pathinfo
    php设置和获取cookie
    div不能被点击设置
    设置CentOS里的Mysql开启客户端远程连接
    leetcode
    background-image中url找不到路径,背景图像无法显示
    0x3F3F3F3F——ACM中的无穷大常量
    HDU 5114 Collision
    HDU 5113 Black And White
  • 原文地址:https://www.cnblogs.com/hzz521/p/4485353.html
Copyright © 2011-2022 走看看