CHOOSE - Cosmos DB'de sorgu dili (Azure ve Doku'da)

CHOOSE İşlev, bir listenin belirtilen dizininde veya undefined dizin listenin sınırlarını aşarsa ifadeyi döndürür.

Sözdizimi

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

Arguments

Description
numeric_expr Listede belirli bir ifadeyi almak için kullanılan dizini belirten sayısal ifade. Listenin başlangıç dizini şeklindedir 1.
expr_1 Listedeki ilk ifade.
expr_N İsteğe bağlı ifadeler; listedeki N. öğeye kadar değişken sayıda ifade içerebilir.

Dönüş türleri

Herhangi bir türde olabilecek bir ifade döndürür.

Örnekler

Bu bölüm, bu sorgu dili yapısının nasıl kullanılacağına örnekler içerir.

Bu örnekler için koleksiyondaki Products bu örnek belge kümesini göz önünde bulundurun.

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

Listeden seçim yapma

Bu örnekte işlev, CHOOSE dizin 1'deki değeri seçmek için kullanılır.

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

Dizine göre seçme

Bu örnekte işlev, CHOOSE farklı dizinlerdeki değerleri seçmek için kullanılır.

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

Uyarı

Bu örnekte, index_0 aralık dışı dizinler için döndürür index_5 ve CHOOSE değerleri olan undefined özellikler JSON nesnelerine dahil olmadığından çıkıştan undefined atlanır.

Üründen alan seçin

Bu örnekte işlev, kategorideki CHOOSE ürünlerden gear-hike-hydration-packs üçüncü alanı seçmek için kullanılır.

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

Açıklamalar

  • Bu işlev dizini kullanmaz.
  • Bu işlev tek tabanlı dizinleme kullanır. Bu, listedeki ilk öğenin birçok programlama dilinde bulunan tipik sıfır tabanlı dizin oluşturma yerine dizinde 1 olduğu anlamına gelir.
  • Dizin aralık dışındaysa işlevi döndürür undefined. Nesne oluştururken, değer içeren undefined özellikler sonuçtan atlanır.