Compartir a través de


CHOOSE - Lenguaje de consulta en Cosmos DB (en Azure y Fabric)

La CHOOSE función devuelve la expresión en el índice especificado de una lista o Undefined si el índice supera los límites de la lista.

Syntax

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

Arguments

Description
numeric_expr Expresión numérica, que especifica el índice usado para obtener una expresión específica en la lista. El índice inicial de la lista es 1.
expr_1 Primera expresión de la lista.
expr_N Expresiones opcionales, que pueden contener un número variable de expresiones hasta el nº elemento de la lista.

Tipos de retorno

Devuelve una expresión, que podría ser de cualquier tipo.

Examples

Esta sección contiene ejemplos de cómo usar esta construcción del lenguaje de consulta.

Considere este conjunto de documentos de ejemplo dentro de la Products colección para estos ejemplos.

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

Elegir entre una lista

En este ejemplo, la CHOOSE función se usa para seleccionar el valor en el índice 1.

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

Elegir por índice

En este ejemplo, la CHOOSE función se usa para seleccionar valores en distintos í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"
  }
]

Elegir campo del producto

En este ejemplo, la CHOOSE función se usa para seleccionar el tercer campo de los productos de la categoría "fins cortos".

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

Observaciones

  • Esta función no utiliza el índice.
  • Esta función usa la indexación basada en uno, lo que significa que el primer elemento de la lista está en el índice 1 en lugar de la indexación típica basada en cero que se encuentra en muchos lenguajes de programación.