Espressioni scalari in Azure Cosmos DB per NoSQL
SI APPLICA A: NoSQL
La SELECT
clausola supporta espressioni scalari. Un'espressione scalare è una combinazione di simboli e operatori che si può valutare per ottenere un singolo valore. Esempi di espressioni scalari includono: costanti, riferimenti a proprietà, riferimenti ad elementi di matrice, riferimenti alias o chiamate di funzione. Le espressioni semplici possono essere combinate a formare espressioni complesse usando gli operatori.
Sintassi
<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] ']'
Argomenti
Descrizione | |
---|---|
<constant> |
Rappresenta un valore costante. Per informazioni dettagliate, vedere la sezione Costanti. |
input_alias |
Rappresenta un valore definito dall'elemento input_alias introdotto nella clausola FROM . |
Questo valore è sicuramente diverso da un valore non definito: i valori non definiti presenti nell'input verranno ignorati. | |
<scalar_expression>.property_name |
Rappresenta un valore della proprietà di un oggetto. Se la proprietà non esiste o la proprietà viene fatto riferimento a un valore, che non è un oggetto, l'espressione restituisce un valore non definito . |
<scalar_expression>'['"property_name"|array_index']' |
Rappresenta un valore della proprietà con nome property_name o un elemento di matrice con indice array_index di una matrice. Se l'indice di proprietà/matrice non esiste o l'indice di proprietà/matrice viene fatto riferimento a un valore che non è un oggetto/matrice, l'espressione restituisce un valore non definito. |
unary_operator <scalar_expression> |
Rappresenta un operatore applicato a un singolo valore. |
<scalar_expression> binary_operator <scalar_expression> |
Rappresenta un operatore applicato a due valori. |
<scalar_function_expression> |
Rappresenta un valore definito da un risultato di una chiamata di funzione. |
udf_scalar_function |
Nome della funzione scalare definita dall'utente. |
builtin_scalar_function |
Nome della funzione scalare predefinita. |
<create_object_expression> |
Rappresenta un valore ottenuto creando un nuovo oggetto con proprietà specificate e i relativi valori. |
<create_array_expression> |
Rappresenta un valore ottenuto creando una nuova matrice con valori specificati come elementi |
parameter_name |
Rappresenta un valore del nome di parametro specificato. I nomi di parametro devono avere un singolo carattere @ come primo carattere. |
Esempi
L'esempio più comune di un'espressione scalare è un'equazione matematica.
SELECT VALUE
((2 + 11 % 7) - 2) / 2
[
2
]
In questo esempio successivo il risultato dell'espressione scalare è un valore booleano:
SELECT
("Redmond" = "WA") AS isCitySameAsState,
("WA" = "WA") AS isStateSameAsState
[
{
"isCitySameAsState": false,
"isStateSameAsState": true
}
]
Osservazioni:
- Tutti gli argomenti devono essere definiti quando si chiama una funzione scalare predefinita o definita dall'utente. Se uno degli argomenti non è definito, la funzione non viene chiamata e il risultato è
undefined
. - Qualsiasi proprietà assegnata a un valore non definito viene ignorata e non inclusa nell'oggetto creato durante la creazione di un oggetto.
- Qualsiasi valore di elemento assegnato a un valore non definito viene ignorato e non incluso nell'oggetto creato durante la creazione di una matrice. In questo modo l'elemento definito successivo viene eseguito in modo che la matrice creata non ignori gli indici.
Contenuto correlato
- Subqueries (Sottoquery)
- Operatori logici