Udostępnij przez


CHOOSE — Język zapytań w usłudze Cosmos DB (na platformie Azure i w sieci szkieletowej)

Funkcja CHOOSE zwraca wyrażenie w określonym indeksie listy lub niezdefiniowane, jeśli indeks przekracza granice listy.

Składnia

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

Arguments

Description
numeric_expr Wyrażenie liczbowe, które określa indeks używany do pobrania określonego wyrażenia na liście. Początkowy indeks listy to 1.
expr_1 Pierwsze wyrażenie na liście.
expr_N Wyrażenia opcjonalne, które mogą zawierać zmienną liczbę wyrażeń do Nth elementu na liście.

Typy zwracane

Zwraca wyrażenie, które może być dowolnego typu.

Przykłady

Ta sekcja zawiera przykłady użycia tej konstrukcji języka zapytań.

Rozważmy ten przykładowy zestaw dokumentów w Products kolekcji dla tych przykładów.

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

Wybierz z listy

W tym przykładzie CHOOSE funkcja służy do wybierania wartości w indeksie 1.

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

Wybierz według indeksu

W tym przykładzie funkcja służy do wybierania CHOOSE wartości w różnych indeksach.

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

Wybieranie pola z produktu

W tym przykładzie CHOOSE funkcja służy do wybierania trzeciego pola z produktów w kategorii "short-fins".

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

Uwagi

  • Ta funkcja nie korzysta z indeksu.
  • Ta funkcja korzysta z indeksowania opartego na jednej podstawie, co oznacza, że pierwszy element na liście znajduje się w indeksie 1 zamiast typowego indeksowania zerowego znalezionego w wielu językach programowania.