Expresiones escalares en Azure Cosmos DB for NoSQL
SE APLICA A: NoSQL
La SELECT
cláusula admite expresiones escalares. Una expresión escalar es una combinación de símbolos y operadores que se puede evaluar para obtener un solo valor. Entre los ejemplos de expresiones escalares se incluyen: constantes, referencias de propiedad, referencias de elementos de matriz, referencias de alias o llamadas de función. Las expresiones escalares se pueden combinar en expresiones complejas con operadores.
Sintaxis
<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] ']'
Argumentos
Descripción | |
---|---|
<constant> |
Representa un valor constante. Vea la sección Constantes para obtener más información. |
input_alias |
Representa un valor definido por input_alias , introducido en la cláusula FROM . |
Este valor nunca será undefined, los valores undefined se omiten de la entrada. | |
<scalar_expression>.property_name |
Representa un valor de propiedad de un objeto. Si la propiedad no existe o se hace referencia a ella con un valor que no es un objeto, la expresión se evalúa como valor undefined. |
<scalar_expression>'['"property_name"|array_index']' |
Representa un valor de propiedad con nombre property_name o un elemento de la matriz con el índice array_index de una matriz. Si la propiedad o el índice de matriz no existen o se hace referencia a ellos con un valor que no es un objeto o una matriz, la expresión se evalúa como valor undefined. |
unary_operator <scalar_expression> |
Representa un operador que se aplica a un único valor. |
<scalar_expression> binary_operator <scalar_expression> |
Representa un operador que se aplica a dos valores. |
<scalar_function_expression> |
Representa un valor definido por el resultado de una llamada de función. |
udf_scalar_function |
Nombre de la función escalar definida por el usuario. |
builtin_scalar_function |
Nombre de la función escalar incorporada. |
<create_object_expression> |
Representa un valor obtenido al crear un objeto con propiedades especificadas y sus valores. |
<create_array_expression> |
Representa un valor obtenido al crear una matriz con valores especificados como elementos. |
parameter_name |
Representa un valor del nombre de parámetro especificado. Los nombres de parámetro deben tener un único @ como primer carácter. |
Ejemplos
El ejemplo lo más común de una expresión escalar es una ecuación matemática.
SELECT VALUE
((2 + 11 % 7) - 2) / 2
[
2
]
En el ejemplo siguiente, el resultado de la expresión escalar es un booleano:
SELECT
("Redmond" = "WA") AS isCitySameAsState,
("WA" = "WA") AS isStateSameAsState
[
{
"isCitySameAsState": false,
"isStateSameAsState": true
}
]
Observaciones
- Todos los argumentos deben definirse al llamar a una función escalar integrada o definida por el usuario. Si alguno de los argumentos es indefinido, no se llama a la función y el resultado es
undefined
. - Cualquier propiedad a la que se le asigne un valor indefinido se omite y no se incluye en el objeto creado al crear un objeto.
- Cualquier valor de elemento al que se le asigne un valor indefinido se omite y no se incluye en el objeto creado al crear una matriz. Este salto hace que el siguiente elemento definido ocupe su lugar de forma que la matriz creada no omita índices.