该 CHOOSE 函数在列表的指定索引处返回表达式,如果索引超出列表的边界,则返回 Undefined。
Syntax
CHOOSE(<numeric_expr>, <expr_1> [, <expr_N>])
Arguments
| Description | |
|---|---|
numeric_expr |
一个数值表达式,指定用于获取列表中特定表达式的索引。 列表的起始索引为 1. |
expr_1 |
列表中的第一个表达式。 |
expr_N |
可选表达式(s),该表达式最多可以包含列表中第 N 个项的可变数量的表达式。 |
返回类型
返回一个表达式,该表达式可以是任何类型的。
例子
本部分包含有关如何使用此查询语言构造的示例。
对于这些示例,请考虑集合中的 Products 一组文档示例。
[
{
"name": "Vimero Hydration Pack",
"category": "gear",
"sku": "69500",
"detailCategory": "gear-hike-hydration-packs"
},
{
"name": "Mt. Hood Hydration Pack",
"category": "gear",
"sku": "69501",
"detailCategory": "gear-hike-hydration-packs"
}
]
从列表中选择
在此示例中,该 CHOOSE 函数用于选择索引 1 处的值。
SELECT VALUE
CHOOSE(1, "Vimero", "Hydration", "Pack")
[
"Vimero"
]
按索引选择
在此示例中,该 CHOOSE 函数用于在不同的索引中选择值。
SELECT VALUE {
index_0: CHOOSE(0, "Mt.", "Hood", "Hydration", "Pack"),
index_1: CHOOSE(1, "Mt.", "Hood", "Hydration", "Pack"),
index_2: CHOOSE(2, "Mt.", "Hood", "Hydration", "Pack"),
index_3: CHOOSE(3, "Mt.", "Hood", "Hydration", "Pack"),
index_4: CHOOSE(4, "Mt.", "Hood", "Hydration", "Pack"),
index_5: CHOOSE(5, "Mt.", "Hood", "Hydration", "Pack")
}
[
{
"index_1": "Mt.",
"index_2": "Hood",
"index_3": "Hydration",
"index_4": "Pack"
}
]
从产品中选择字段
在此示例中,该 CHOOSE 函数用于从“short-fins”类别中的产品中选择第三个字段。
SELECT VALUE
CHOOSE(3, p.category, p.name, p.sku)
FROM
products p
WHERE
p.detailCategory = "gear-hike-hydration-packs"
[
"69500",
"69501"
]
注解
- 此函数不使用索引。
- 此函数使用 基于一个的索引,这意味着列表中的第一项位于索引
1位置,而不是在许多编程语言中找到的典型从零开始的索引。