子句會 FROM 識別查詢的資料來源。
語法
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>提供或推斷的所有別名都必須是唯一的。 - 如果容器運算式存取屬性或陣列元素,但該值不存在,則會忽略該值,且不會進一步處理。
- 容器運算式可以是容器範圍或項目範圍。
- 如果容器運算式的基礎來源是
ROOT或container_name,則運算式是儲存器範圍。 這類運算式代表直接從容器擷取的一組專案,而且不相依於其他容器運算式的處理。 - 如果容器運算式的基礎來源是在查詢中稍早引進,
input_alias則運算式是項目範圍的。 這類運算式代表透過評估容器運算式所取得的一組項目。 此評估是在屬於與別名容器相關聯之集合的每個項目的範圍內執行。 產生的集合是透過評估基礎集合中每個項目的容器運算式而獲得的集合聯集。