• SQL Server 2012 实现分页新语法


    最近一直在看SQL Server的书,不过看的都是基础的查询流,查询在工作中用到的最多,所以能正确地查询出想要的数据也是很重要的嘛。

    在书上看到在SQL Server 2012新增了一种实现分页的查询方法,感觉比原来的方便一点,因此记录一下,如能帮助到大家,也是非常开心的~

    以前分页的时候,我基本都是用ROW_NUMBER()函数,和在WHERE语句中用BETWEEN AND 来实现的;每次都得写子查询,感觉挺麻烦的,例:

    SELECT *
    FROM (
        SELECT 
            ID,
            ROW_NUMBER() OVER(ORDER BY [Datetime] DESC) AS num
        FROM dbo.tblUser
    ) AS t
    WHERE t.num BETWEEN 11 AND 20

    在SQL Server 2012中就不需要写子查询啦,直接在ORDER BY语句中就可以实现分页啦!例:

    SELECT
        ID,
        ROW_NUMBER() OVER(ORDER BY [Datetime] DESC) AS num
    FROM dbo.tblUser
    ORDER BY num
    OFFSET 10 ROWS
    FETCH NEXT 10 ROWS ONLY

      需注意的是:该语法是在ORDER BY 子句中引入了两个新的参数 OFFSET 和  FETCH,因此它们必须在order by语句只有使用,且必须结合使用才能使分页正常运作。

      OFFSET指定在返回查询结果之前要跳过的行数,FETCH指定OFFSET之后返回的行数。

  • 相关阅读:
    Jenkins 主备master-slave模式搭建
    vbox 相关
    jenkins 常见问题汇总
    linux git patch 和patch以及git diff 命令
    Linux中的free命令
    MySQL Show命令的使用
    MySQL 加锁处理分析 转
    共享锁【S锁】 排他锁【X锁】
    MySQL分库分表环境下全局ID生成方案 转
    mysql性能的检查和调优方法
  • 原文地址:https://www.cnblogs.com/zzgblog/p/5325571.html
Copyright © 2020-2023  润新知