Aracılığıyla paylaş


NoSQL için Azure Cosmos DB'de skaler ifadeler

UYGULANANLAR: NoSQL

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öz dizimi

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

Bağımsız değişkenler

Açıklama
<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.