Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La SELECT cláusula admite expresiones escalares. Una expresión escalar es una combinación de símbolos y operadores que se pueden evaluar para obtener un único valor. Algunos ejemplos de expresiones escalares son: constantes, referencias de propiedades, referencias de elementos de matriz, referencias de alias o llamadas de función. Las expresiones escalares se pueden combinar en expresiones complejas mediante operadores.
Syntax
<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> |
Representa un valor constante. Consulte la sección Constantes para obtener más información. |
input_alias |
Representa un valor definido por el input_alias introducido en la FROM cláusula . |
| Se garantiza que este valor no sea indefinido : se omiten los valores indefinidos de la entrada. | |
<scalar_expression>.property_name |
Representa un valor de la propiedad de un objeto . Si la propiedad no existe o se hace referencia a la propiedad en un valor, que no es un objeto, la expresión se evalúa como un valor indefinido . |
<scalar_expression>'['"property_name"|array_index']' |
Representa un valor de la propiedad con el nombre property_name o el elemento de matriz con el índice array_index de una matriz. Si el índice de propiedad o matriz no existe o se hace referencia al índice de propiedad o matriz en un valor que no es un objeto o matriz, la expresión se evalúa como un valor indefinido. |
unary_operator <scalar_expression> |
Representa un operador que se aplica a un valor único. |
<scalar_expression> binary_operator <scalar_expression> |
Representa un operador que se aplica a dos valores. |
<scalar_function_expression> |
Representa un valor definido por un 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 integrada. |
<create_object_expression> |
Representa un valor obtenido mediante la creación de un nuevo objeto con las propiedades especificadas y sus valores. |
<create_array_expression> |
Representa un valor obtenido mediante la creación de una nueva matriz con valores especificados como elementos |
parameter_name |
Representa un valor del nombre de parámetro especificado. Los nombres de parámetro deben tener una sola @ como primer carácter. |
Examples
El ejemplo más común de una expresión escalar es una ecuación matemática.
SELECT VALUE
((2 + 11 % 7) - 2) / 2
[
2
]
En este ejemplo siguiente, el resultado de la expresión escalar es un valor 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 no está definido, no se llama a la función y el resultado es
undefined. - Se omite cualquier propiedad que tenga asignado un valor indefinido y no se incluye en el objeto creado al crear un objeto.
- Se omite cualquier valor de elemento asignado sin definir y no se incluye en el objeto creado al crear una matriz. Esta omisión hace que el siguiente elemento definido tenga su lugar de forma que la matriz creada no omita los índices.