Partager via


CHOOSE - Langage de requête dans Cosmos DB (dans Azure et Fabric)

La CHOOSE fonction retourne l’expression à l’index spécifié d’une liste, ou Undefined si l’index dépasse les limites de la liste.

Syntaxe

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

Arguments

Descriptif
numeric_expr Expression numérique, qui spécifie l’index utilisé pour obtenir une expression spécifique dans la liste. L’index de départ de la liste est 1.
expr_1 Première expression de la liste.
expr_N Expressions facultatives, qui peuvent contenir un nombre variable d’expressions jusqu’à l’élément Nth dans la liste.

Types de retour

Retourne une expression, qui peut être de n’importe quel type.

Examples

Cette section contient des exemples d’utilisation de cette construction de langage de requête.

Considérez cet exemple de jeu de documents dans la Products collection pour ces exemples.

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

Choisir dans une liste

Dans cet exemple, la CHOOSE fonction est utilisée pour sélectionner la valeur à l’index 1.

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

Choisir par index

Dans cet exemple, la CHOOSE fonction est utilisée pour sélectionner des valeurs à différents index.

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

Choisir un champ dans le produit

Dans cet exemple, la CHOOSE fonction est utilisée pour sélectionner le troisième champ dans les produits de la catégorie « short-fins ».

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

Remarques

  • Cette fonction n’utilise pas l’index.
  • Cette fonction utilise l’indexation à base unique, ce qui signifie que le premier élément de la liste est à l’index 1 au lieu de l’indexation classique basée sur zéro trouvée dans de nombreux langages de programmation.