zoukankan      html  css  js  c++  java
  • SQL FETCH限制查询返回的行数

    在本教程中,我们来学习如何使用SQL FETCH子句来限制查询返回的行数。

    1. SQL FETCH子句简介

    要限制查询返回的行数,请使用LIMIT子句。 LIMIT子句得到了许多数据库系统的广泛支持,例如MySQL,H2和HSQLDB。 但是,LIMIT子句不是SQL标准子句。

    SQL:2008 引入了OFFSET FETCH子句,它具有与LIMIT子句类似的功能。 OFFSET FETCH子句用于在开始返回任何行之前跳过结果集中的前N行。更多教程请访问http://www.manongzj.com

    以下显示了SQLFETCH子句的语法:

    OFFSET offset_rows { ROW | ROWS }
    FETCH { FIRST | NEXT } [ fetch_rows ] { ROW | ROWS } ONLY
    

    在上面语法中,

    • ROWROWSFIRSTNEXT是同义词,因此,可以互换使用它们。
    • offset_rows是一个整数,必须为零或正数。 如果offset_rows大于结果集中的行数,则不会返回任何行。
    • fetch_rows也是一个整数,用于确定要返回的行数。 fetch_rows的值等于或大于1

    由于行以不可预测的顺序存储在表中,因此应始终将FETCH子句与ORDER BY子句一起使用以获得一致的输出。

    许多数据库系统都支持OFFSET FETCH子句,包括Oracle Database 12c +PostgreSQL 10+ 和Microsoft SQL Server 2012+ 。 但是,每个数据库系统都会以不同的方式实现OFFSET FETCH子句。

    OFFSET FETCH子句通常用于需要分页的客户端或Web应用程序。 例如,如果每个页面有十行,要获取第二页的行,可以跳过前10行并返回接下来的10行。

    2. SQL FETCH示例

    我们将使用示例数据库中的employees表进行演示。

    以下语句返回薪水最高的员工信息:

    SELECT 
        employee_id, 
        first_name, 
        last_name, 
        salary
    FROM employees
    ORDER BY 
        salary DESC
    OFFSET 0 ROWS
    FETCH NEXT 1 ROWS ONLY;
    

    在此示例中,首先,ORDER BY子句按薪水从高到低对员工进行排序。 OFFSET子句跳过0行,FETCH子句返回第一行。

    以下语句按薪水对员工进行排序,跳过前五名薪水最高的员工,然后取出接下来的五名员工。

    SELECT 
        employee_id, 
        first_name, 
        last_name, 
        salary
    FROM employees
    ORDER BY 
        salary DESC
    OFFSET 5 ROWS
    FETCH NEXT 5 ROWS ONLY;
    

    在本教程中,您已学习如何在开始返回任何行之前使用SQL FETCH子句跳过结果集中的N行。

  • 相关阅读:
    js---查找数组中的最大值(最小值),及相应的下标
    JS数组遍历的几种方法
    在 forEach 中使用 async/await 遇到的问题
    js 事件冒泡和事件捕获
    JS中dom0级事件和dom2级事件的区别介绍
    Vue集成Ueditor
    vue富文本编辑器 Vue-Quill-Editor
    Redis问题1---redis满了怎么办
    jQuery火箭图标返回顶部代码
    遇到的小问题
  • 原文地址:https://www.cnblogs.com/myhomepages/p/15826222.html
Copyright © 2011-2022 走看看