跳转至
开发版采用单机部署,无需产品 License 文件。需要多机部署或大规模性能测试? 了解企业版

最终输出语句

最终输出语句定义线性查询的最终输出行为:

  • 返回结果(可附带分页)。
  • 或直接结束查询而不返回数据。

语法

primitive_result
return_statement paging_statement FINISH

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 |
+---+