Aracılığıyla paylaş


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

SELECT yan tümcesi skaler ifadeleri destekler. Skaler ifade, tek bir değer elde etmek için değerlendirilebilecek simgelerin ve işleçlerin birleşimidir. Skaler ifadelere örnek olarak şunlar verilebilir: sabitler, özellik başvuruları, dizi öğesi başvuruları, diğer ad başvuruları veya işlev çağrıları. Skaler ifadeler işleçler kullanılarak karmaşık ifadeler halinde birleştirilebilir.

Sözdizimi

<scalar_expression> ::=  
       <constant>
     | input_alias
     | parameter_name  
     | <scalar_expression>.property_name  
     | <scalar_expression>'['"property_name"|array_index']'  
     | unary_operator <scalar_expression>  
     | <scalar_expression> binary_operator <scalar_expression>    
     | <scalar_expression> ? <scalar_expression> : <scalar_expression>  
     | <scalar_function_expression>  
     | <create_object_expression>
     | <create_array_expression>  
     | (<scalar_expression>)
  
<scalar_function_expression> ::=  
        'udf.' Udf_scalar_function([<scalar_expression>][,…n])  
        | builtin_scalar_function([<scalar_expression>][,…n])  
  
<create_object_expression> ::=  
   '{' [{property_name | "property_name"} : <scalar_expression>][,…n] '}'  
  
<create_array_expression> ::=  
   '[' [<scalar_expression>][,…n] ']'

Arguments

Description
<constant> Sabit bir değeri temsil eder. Ayrıntılar için Sabitler bölümüne bakın.
input_alias yan tümcesinde FROM tanıtılan input_alias tarafından tanımlanan bir değeri temsil eder.
Bu değerin tanımsız olmaması garanti edilir; girişteki tanımsız değerler atlanır.
<scalar_expression>.property_name Bir nesnenin özelliğinin değerini temsil eder. Özelliği yoksa veya nesne olmayan bir değerde özelliğe başvurulduysa, ifade tanımsız değer olarak değerlendirilir.
<scalar_expression>'['"property_name"|array_index']' Bir dizinin dizinine array_index sahip ada property_name veya dizi öğesine sahip özelliğinin değerini temsil eder. Özellik/dizi dizini yoksa veya nesne/dizi olmayan bir değerde özellik/dizi dizinine başvurulduysa, ifade tanımsız değer olarak değerlendirilir.
unary_operator <scalar_expression> Tek bir değere uygulanan bir işleci temsil eder.
<scalar_expression> binary_operator <scalar_expression> İki değere uygulanan bir işleci temsil eder.
<scalar_function_expression> İşlev çağrısının sonucu tarafından tanımlanan bir değeri temsil eder.
udf_scalar_function Kullanıcı tanımlı skaler işlevin adı.
builtin_scalar_function Yerleşik skaler işlevin adı.
<create_object_expression> Belirtilen özelliklere ve değerlerine sahip yeni bir nesne oluşturarak elde edilen değeri temsil eder.
<create_array_expression> Öğe olarak belirtilen değerlere sahip yeni bir dizi oluşturarak elde edilen değeri temsil eder
parameter_name Belirtilen parametre adının değerini temsil eder. Parametre adlarının ilk karakter olarak tek bir @ olması gerekir.

Örnekler

Skaler ifadenin en yaygın örneği matematik denklemidir.

SELECT VALUE
  ((2 + 11 % 7) - 2) / 2
[
  2
]

Bu sonraki örnekte skaler ifadenin sonucu boole değeridir:

SELECT
  ("Redmond" = "WA") AS isCitySameAsState,
  ("WA" = "WA") AS isStateSameAsState
[
  {
    "isCitySameAsState": false,
    "isStateSameAsState": true
  }
]

Açıklamalar

  • Yerleşik veya kullanıcı tanımlı bir skaler işlev çağrılırken tüm bağımsız değişkenler tanımlanmalıdır. Bağımsız değişkenlerden herhangi biri tanımlanmamışsa işlev çağrılmaz ve sonuç olur undefined.
  • Tanımlanmamış değer atanan tüm özellikler atlanır ve nesne oluşturulurken oluşturulan nesneye dahil değildir.
  • Tanımlanmamış değer atanan tüm öğe değerleri atlanır ve dizi oluşturulurken oluşturulan nesneye dahil değildir. Bu atlama, bir sonraki tanımlı öğenin, oluşturulan dizinin dizinleri atlamadığı şekilde yerini almasına neden olur.