暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8s SQL 指南:教程_3 编写 SELECT 语句_3.2 单个表的 SELECT 语句(10)

GBASE数据库 2021-12-16
544

3.2.6 使用 FIRST 子句选择特定行
可以在 SELECT 语句的 Projection 子句中包含 FIRST max 规范(其中 max 具有整数值)
来构建查询,使其仅返回匹配 SELECT 语句条件的最初max 行。在(且仅在)此上下文中,
也可以使用关键字 LIMIT 作为 FIRST 的同义词。执行具有FIRST 子句的 SELECT 语句
时返回的行可能会不同,这取决于该语句是否还包含 ORDER BY 子句。
在 Projection 子句中,后面跟无符号整数的关键字 SKIP 可用在 FIRST 或 LIMIT 关键字
前面。SKIP offset 子句指示数据库服务器在返回 FIRST 子句指定的行数之前,从查询结果
集中排除最初 offset 行满足条件的行。在 SPL 例程中,SKIP 、FIRST 或 LIMIT 的参数

可以是字面值整数或局部 SPL 变量。如果 Projection 子句包含 SKIP offset 但不包含
FIRST 或 LIMIT 规范,那么查询返回除最初 offset 行以外所有满足条件的行。
Projection 子句在下列上下文中不能包含 SKIP 、FIRST 或 LIMIT 关键字:
• 当 SELECT 语句是视图定义的一部分
• 在子查询中,除了外部查询的 FROM 子句
• 在跨服务器分发的查询中,其中参与的数据库服务器不支持 SKIP 、FIRST 或
LIMIT 关键字。
有关使用 FIRST 子句的限制的信息,请参阅《GBase 8s SQL 指南:语法》中 SELECT 语
句的 Projection 子句的描述。
不具有 ORDER BY 子句的 FIRST 子句
如果具有 FIRST 子句的 SELECT 语句中没有 ORDER BY 子句,那么可能返回符合
SELECT 语句条件的任何行。换言之,数据库服务器确定返回哪些限定行,并且查询结果
可能会不同,这取决于优化器选择的查询计划。
以下查询使用 FIRST 子句来返回 state 表中的前五行。
图: 查询

图: 查询结果

当只想知道表包含的所有列的名称和数据的类型,或者测试可能会返回许多行的查询时,
可以使用 FIRST 子句。以下查询显示了如何使用 FIRST 子句来返回表的第一行的列值。
图: 查询

图: 查询结果



具有 ORDER BY 子句的 FIRST 子句
可以在具有 FIRST 子句的 SELECT 语句中包括 ORDER BY 子句,以返回包含指定列的
最高值或最低值的行。以下查询显示了包含 ORDER BY 子句以(按字母顺序)返回包含
在 state 表中的前五个州的查询。该查询,(除 ORDER BY 子句以外,它与图 1相同)返
回不同于图 1的一组行。

图: 查询


图: 查询结果

以下查询显示如何在具有 ORDER BY 子句的查询中使用 FIRST 子句来查找 stock 表中
列出的 10 中最贵的商品。
图: 查询

图: 查询结果



应用程序可以将 Projection 子句的 SKIP 和 FIRST 关键字与 ORDER BY 子句相结合使
用,以执行连续查询,对某些固定大小(例如,最大行数可在一屏显示,无需滚动)的子
集中所有满足条件的行进行增量检索。通过在每次查询后使用 FIRST 子句的 max 参数增
大 SKIP 子句的 offset 参数值可实现上述操作。通过对满足条件的行施加唯一的命令,
ORDER BY 子句确保每次查询返回满足条件行的不同子集。
以下查询显示了包含 SKIP 、FIRST 和 ORDER BY 规范以(按字母顺序)返回 state 表的
10 个州中的第六个州,而不是前五个州的查询。该查询类似于图 1,但 SKIP 5 规范指示
数据库服务器返回不同于图 1的行集。
图: 查询

图: 查询结果

如果使用 SKIP 、FIRST 和 ORDER BY 关键字,必须指定对应于应用程序设计目标的参
数,如果 SKIP 的 offset 参数大于满足条件的行数,那么任何 FIRST 或 LIMIT 规范都无
效,并且查询不会返回任何结果。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论