Compartilhar 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 indefinida se o índice excede 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 na lista.
expr_N Expressões opcionais, que podem conter um número variável de expressões até o Nth item na lista.

Tipos de retorno

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

Exemplos

Esta seção contém exemplos de como usar este constructo de linguagem de consulta.

Considere este conjunto de exemplos de documentos na 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"
  }
]

Escolher entre 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 índices diferentes.

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 "aletas 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

  • Essa função não utiliza o índice.
  • Essa 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 típica baseada em zero encontrada em muitas linguagens de programação.