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

  • 相关阅读:
    改变Ecplise项目窗口字体样式
    反射笔记
    日期、时间戳、字符串之间的转换
    Ajax处理后台返回的Json数据
    Ajax动态切换按钮
    生成随机数验证码
    Apache-SimpleEmail 简单应用
    Apache-POI 简单应用
    JavaMail API的应用
    checkbox怎么判断是否选中
  • 原文地址:https://www.cnblogs.com/hzz521/p/4485353.html
Copyright © 2020-2023  润新知