Partilhar via


CHOOSE - Linguagem de consulta no Cosmos DB (no Azure e no Fabric)

A CHOOSE função retorna a expressão no índice especificado de uma lista, ou Undefined se o índice exceder os limites da lista.

Sintaxe

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

Arguments

Description
numeric_expr Uma expressão numérica, que especifica o índice usado para obter uma expressão específica na lista. O índice inicial da lista é 1.
expr_1 A primeira expressão da lista.
expr_N Expressão(ões) opcional(is), que pode conter um número variável de expressões até o Nono item da lista.

Tipos de devolução

Retorna uma expressão, que pode ser de qualquer tipo.

Examples

Esta seção contém exemplos de como usar essa construção de linguagem de consulta.

Considere este conjunto de exemplos de documentos dentro da Products coleção para esses exemplos.

[
  {
    "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"
  }
]

Escolha a partir de uma lista

Neste exemplo, a CHOOSE função é usada para selecionar o valor no índice 1.

SELECT VALUE 
  CHOOSE(1, "Vimero", "Hydration", "Pack")
[
  "Vimero"
]

Escolher por índice

Neste exemplo, a CHOOSE função é usada para selecionar valores em diferentes índices.

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"
  }
]

Escolher campo do produto

Neste exemplo, a CHOOSE função é usada para selecionar o terceiro campo de produtos na categoria "barbatanas curtas".

SELECT VALUE
  CHOOSE(3, p.category, p.name, p.sku)
FROM
  products p
WHERE
  p.detailCategory = "gear-hike-hydration-packs"
[
  "69500",
  "69501"
]

Observações

  • Esta função não utiliza o índice.
  • Esta função usa indexação baseada em um, o que significa que o primeiro item da lista está no índice 1 em vez da indexação baseada em zero típica encontrada em muitas linguagens de programação.