Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Предложение SELECT поддерживает скалярные выражения. Скалярное выражение — это сочетание символов и операторов, которые можно оценить для получения одного значения. Примеры скалярных выражений: константы, ссылки на свойства, ссылки на элементы массива, ссылки на псевдонимы или вызовы функций. Скалярные выражения можно объединить в сложные выражения с помощью операторов.
Синтаксис
<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> |
Представляет константное значение. Дополнительные сведения см. в разделе "Константы ". |
input_alias |
Представляет значение, определенное input_alias введенным в предложении FROM . |
| Это значение гарантированно не определено –неопределенные значения во входных данных пропускаются. | |
<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. - Любое свойство, назначенное неопределенным значением, пропускается и не включается в созданный объект при создании объекта.
- Любое значение элемента, назначенное неопределенным значением, пропускается и не включается в созданный объект при создании массива. Этот пропуск приводит к тому, что следующий определенный элемент будет иметь свое место таким образом, чтобы созданный массив не пропускал индексы.