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.