Скалярные выражения в Azure Cosmos DB для NoSQL
ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL
Предложение SELECT
поддерживает скалярные выражения. Скалярное выражение — это сочетание символов и операторов, в результате вычисления которых возвращается одно значение. К скалярным выражениям относятся константы, ссылки на свойства, ссылки на элементы массива, ссылки на псевдонимы и вызовы функций. C помощью операторов скалярные выражения можно объединять в сложные.
Синтаксис
<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] ']'
Аргументы
Description | |
---|---|
<constant> |
Представляет значение константы. Дополнительные сведения см. в разделе Константы. |
input_alias |
Представляет значение, определяемое аргументом input_alias в предложении FROM . |
Выражение гарантировано не может принять значение undefined. Значения undefined пропускаются. | |
<scalar_expression>.property_name |
Представляет значение свойства объекта. Если свойство не существует или свойство ссылается на значение, которое не является объектом, выражение оценивается как неопределенное значение. |
<scalar_expression>'['"property_name"|array_index']' |
Представляет значение свойства с именем property_name или элемент массива с индексом array_index из массива. Если индекс свойства или массива не существует, или индекс свойства или массива ссылается на значение, которое не является объектом или массивом, выражение оценивается как неопределенное значение. |
unary_operator <scalar_expression> |
Представляет оператор, применяемый к одному значению. |
<scalar_expression> binary_operator <scalar_expression> |
Представляет оператор, применяемый к двум значениям. |
<scalar_function_expression> |
Представляет значение, определяемое результатом вызова функции. |
udf_scalar_function |
Имя определяемой пользователем скалярной функции. |
builtin_scalar_function |
Имя встроенной скалярной функции. |
<create_object_expression> |
Представляет значение, полученное в процессе создания объекта с заданными свойствами и их значениями. |
<create_array_expression> |
Представляет значение, полученное в процессе создания массива с заданными значениями в качестве элементов. |
parameter_name |
Представляет значение указанного имени параметра. Имена параметров должны начинаться со знака \"\@\". |
Примеры
Наиболее распространенным примером скалярного выражения является математическое уравнение.
SELECT VALUE
((2 + 11 % 7) - 2) / 2
[
2
]
В следующем примере результат скалярного выражения является логическим:
SELECT
("Redmond" = "WA") AS isCitySameAsState,
("WA" = "WA") AS isStateSameAsState
[
{
"isCitySameAsState": false,
"isStateSameAsState": true
}
]
Замечания
- Все аргументы должны быть определены при вызове встроенной или пользовательской скалярной функции. Если какой-либо из аргументов не определен, функция не вызывается, и результатом является
undefined
. - Любое свойство, назначенное неопределенным значением, пропускается и не включается в созданный объект при создании объекта.
- Любое значение элемента, назначенное неопределенным значением, пропускается и не включается в созданный объект при создании массива. Этот пропуск приводит к тому, что следующий определенный элемент будет иметь свое место таким образом, чтобы созданный массив не пропускал индексы.