最终输出语句¶
最终输出语句定义线性查询的最终输出行为:
- 返回结果(可附带分页)。
- 或直接结束查询而不返回数据。
语法¶
- primitive_result
primitive_result ::=
return_statement paging_statement?
| FINISH
参数¶
return_statement¶
用于选择查询结果或对查询结果中的数据进行聚合操作。更多信息,请参见 RETURN 语句。
paging_statement¶
将查询结果数据集划分为离散的子集或页面,这种过程通常称为分页。更多信息,请参见分页语句。
FINISH¶
FINISH子句用于结束查询,且不返回查询的数据。
示例¶
返回唯一结果并分页¶
'''
FOR i IN LIST[5, 3, 1, 4, 2, 2]
RETURN DISTINCT i AS num
ORDER BY num ASC
OFFSET 1
LIMIT 2
'''
上述语句先展开列表nums,随后使用RETURN DISTINCT返回唯一结果,并使用ORDER BY和OFFSET分页。最后返回前2个结果。
返回:
+-----+
| num |
+-----+
| 2 |
| 3 |
+-----+
结束查询且不返回数据¶
'''
LET nums = LIST[1, 2, 3]
FOR n IN nums
FINISH
'''
上述语句先展开列表nums,随后使用FINISH直接结束查询,不返回任何数据。
结束内联过程¶
'''
LET a = 1
CALL {
LET b = a + 1
FINISH
}
RETURN a
'''
上述语句先定义变量a,再调用一个内联过程。在该内联过程中,FINISH用于结束过程且不返回过程内部的数据,因此最终结果仅返回外层查询中的a。
返回:
+---+
| a |
+---+
| 1 |
+---+