Compartir a través de

CHOOSE(NoSQL 查询)

适用范围: NoSQL

返回列表指定索引处的表达式,如果索引超出列表的边界,则返回“未定义”。

语法

CHOOSE(<numeric_expr>, <expr_1> [, <expr_N>])

参数

描述
numeric_expr 一个数值表达式,指定用于获取列表中特定表达式的索引。 列表的起始索引为 1
expr_1 列表中的第一个表达式。
expr_N(可选) 可选表达式,可以包含列表中最多第 N 项的可变数量的表达式。

返回类型

返回一个表达式,可以是任何类型的表达式。

示例

以下示例使用静态列表来演示不同索引处的各种返回值。

SELECT VALUE 
    CHOOSE(1, "adventure", "works", true, [1])
[
  "adventure"
]

此示例使用静态列表来演示不同索引处的各种返回值。

SELECT VALUE {
    index_0: CHOOSE(0, "abc", 1, true, [1]),
    index_1: CHOOSE(1, "abc", 1, true, [1]),
    index_2: CHOOSE(2, "abc", 1, true, [1]),
    index_3: CHOOSE(3, "abc", 1, true, [1]),
    index_4: CHOOSE(4, "abc", 1, true, [1]),
    index_5: CHOOSE(5, "abc", 1, true, [1])
}
[
  {
    "index_1": "abc",
    "index_2": 1,
    "index_3": true,
    "index_4": [
      1
    ]
  }
]

此最终示例使用容器中具有三个相关字段的现有项。

[
  {
    "id": "68719519522",
    "name": "Gremon Fins",
    "sku": "73311",
    "tags": [
      "Science Blue",
      "Turbo"
    ]
  }
]

此示例从该项的三个路径中选择一个表达式。

SELECT
    CHOOSE(3, p.category, p.name, p.sku) AS barcode
FROM
    products p
WHERE
    p.category = "short-fins"
[
  {
    "barcode": "73311"
  }
]

备注

  • 此函数使用从 1 开始的列表索引。 列表中的第一项是使用数字索引 1 而不是 0 引用的。
  • 此函数不使用索引。

另请参阅