📜  SQL 中的 FETCH

📅  最后修改于: 2022-05-13 01:55:40.226000             🧑  作者: Mango

SQL 中的 FETCH

FETCH 是一个 SQL 命令,与带有 OFFSET(起点)的 ORDER BY 子句一起使用,以使用游标顺序检索或获取选定的行,该游标一次移动和处理每一行,直到显示查询中提到的行数。

  • 对于 FETCH,OFFSET 子句是强制性的。您不得使用 ORDER BY ... FETCH。
  • 不允许将 TOP 与 OFFSET 和 FETCH 结合使用。
  • OFFSET/FETCH 行计数表达式只能是将返回整数值的任何算术、常量或参数表达式。
  • 对于 OFFSET 和 FETCH 子句,必须使用 ORDER BY。

句法:

实现 FETCH 的步骤:

在这里,我们将讨论在 SQL 中实现 FETCH 命令的步骤。

步骤一:参考表:

让我们考虑根据班级学生的分数创建一个表格,其中包含以下显示的数据。

IDNAMEMATHEMATICSPHYSICSCHEMISTRY
 501Surya99 9785
502Sravan91 9894
503Charan99 9388
504Ram92 9992
505Aryan94 99 88
506Sathwik91 8891
507Madhav90 9789

第 2 步:创建数据库:

CREATE DATABASE gfg;

第三步:使用数据库:



USE gfg;

第 4 步:创建表:

使用以下 SQL 查询创建具有 5 列的表 MarketList:

CREATE TABLE MarkList
(
    id int,
    name varchar(20),
    mathematics int, 
    physics int,
    chemistry int
);

第五步:插入数据到表中:

INSERT INTO MarkList VALUES(501,'Surya',99,97,85);
INSERT INTO MarkList VALUES(502,'Charan',99,93,88);
INSERT INTO MarkList VALUES(503,'Sravan',91,98,94);
INSERT INTO MarkList VALUES(504,'Ram',92,99,82);
INSERT INTO MarkList VALUES(505,'Aryan',94,99,88);
INSERT INTO MarkList VALUES(506,'Sathwik',91,88,91);
INSERT INTO MarkList VALUES(507,'Madhav',90,97,89);

第 6 步:插入后,表格将如下所示。

第 7 步:现在使用 fetch 命令获取数据:

要检索前 3 名学生的姓名、id 和总分,使用 fetch 命令如下:

SELECT Id, name, mathematics+physics+chemistry AS total
FROM MarketList
ORDER BY mathematics+physics+chemistry DESC
OFFSET 0 ROWS
FETCH NEXT 3 ROWS ONLY;

因此,SQL FETCH 命令用于按顺序从表中检索选定的行。当您想从有序集合中选择有限数量的行(如前 3、前 10 或后 3 等)时,使用它很方便。