Partager via


CHOOSE (requête NoSQL)

S’APPLIQUE À : NoSQL

Renvoie l’expression à l’index spécifié d’une liste, ou Non défini si l’index dépasse les limites de la liste.

Syntaxe

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

Arguments

Description
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 La première expression de la liste.
expr_N(Facultatif) Expression[s] facultative[s], pouvant contenir un nombre variable d’expressions jusqu’au Nème élément de la liste.

Types de retour

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

Exemples

L’exemple suivant utilise une liste statique pour illustrer différentes valeurs renvoyées à différents index.

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

Cet exemple utilise une liste statique pour illustrer différentes valeurs renvoyées à différents index.

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

Cet exemple final utilise un élément existant dans un conteneur avec trois champs pertinents.

[
  {
    "name": "Gremon Fins",
    "sku": "73311",
    "tags": [
      "Science Blue",
      "Turbo"
    ],
    "category": "short-fins"
  }
]

Cet exemple sélectionne une expression à partir des chemins existant dans l’élément.

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

Notes

  • Cette fonction utilise l’indexation de liste à base unique. Le premier élément de la liste est référencé à l’aide de l’index numérique 1 au lieu du 0.
  • Cette fonction n’utilise pas l’index.

Voir aussi