子 FROM 句标识查询的数据源。
Syntax
FROM <from_specification>
<from_specification> ::= <from_source> {[ JOIN <from_source>][,...n]}
<from_source> ::= <container_expression> [[AS] input_alias] | input_alias IN <container_expression>
<container_expression> ::= ROOT | container_name | input_alias | <container_expression> '.' property_name | <container_expression> '[' "property_name" | array_index ']'
Arguments
| Description | |
|---|---|
from_source |
指定包含或不使用别名的数据源。 |
AS input_alias |
指定input_alias是基础容器表达式返回的一组值。 |
input_alias IN |
指定input_alias应表示通过循环访问基础容器表达式返回的每个数组的所有数组元素获取的值集。 |
container_expression |
指定要用于检索项的容器表达式。 |
ROOT |
指定应从默认的当前连接的容器中检索项。 |
container_name |
指定应从提供的容器中检索项。 |
input_alias |
指定应从提供别名定义的其他源检索项。 |
<container_expression> '.' property_name |
指定应通过访问 property_name 属性来检索项。 |
<container_expression> '[' "property_name" | array_index ']' |
指定应通过访问property_name属性或array_index数组元素来检索指定容器表达式检索的所有项。 |
返回类型
返回指定源中的项集。
例子
本部分包含有关如何使用此查询语言构造的示例。
包含容器别名的 FROM 子句
在此示例中,子 FROM 句用于将当前容器指定为源,为其指定唯一名称,然后将其别名。 然后,该别名用于在查询结果中投影特定字段。
SELECT VALUE
p.name
FROM
products p
[
"Joller Kid's Jacket",
"Codlier Kid's Jacket",
...
]
将子根用作源的 FROM 子句
在此示例中,子 FROM 句还可以将源减少到较小的子集。 若要仅枚举每个项中的子树,子根可以成为源。 数组或对象子根可用作源。
SELECT VALUE
s
FROM
products.sizes s
[
{
"key": "65",
"description": "6.5",
"order": 0
},
{
"key": "75",
"description": "7.5",
"order": 1
},
...
]
注解
- 在 (s) 中
<from_source>提供或推断的所有别名必须是唯一的。 - 如果容器表达式访问属性或数组元素,并且该值不存在,则会忽略该值,并且不会进一步处理该值。
- 容器表达式可以是容器范围的,也可以是项范围的。
- 如果容器表达式的基础源为或
ROOTcontainer_name.,则表达式是容器范围的。 此类表达式表示直接从容器检索到的一组项,并且不依赖于其他容器表达式的处理。 - 如果在查询前面引入容器表达式
input_alias的基础源,则表达式是项范围的。 此类表达式表示通过计算容器表达式获得的一组项。 此评估在属于与别名容器关联的集的每个项的范围内执行。 生成的集是通过计算基础集中每个项的容器表达式获得的集的并集。