Skalära uttryck i Azure Cosmos DB för NoSQL
GÄLLER FÖR: NoSQL
Satsen SELECT
stöder skalära uttryck. Ett skalärt uttryck är en kombination av symboler och operatorer som kan utvärderas för att få ett enda värde. Exempel på skalära uttryck är: konstanter, egenskapsreferenser, matriselementreferenser, aliasreferenser eller funktionsanrop. Skalära uttryck kan kombineras till komplexa uttryck med operatorer.
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] ']'
Argument
beskrivning | |
---|---|
<constant> |
Representerar ett konstant värde. Mer information finns i avsnittet Konstanter . |
input_alias |
Representerar ett värde som definierats av den input_alias som introducerades i FROM -satsen. |
Det här värdet är garanterat inte odefinierat – odefinierade värden i indata hoppas över. | |
<scalar_expression>.property_name |
Representerar ett värde för egenskapen för ett objekt. Om egenskapen inte finns eller om egenskapen refereras till ett värde, som inte är ett objekt, utvärderas uttrycket till ett odefinierat värde. |
<scalar_expression>'['"property_name"|array_index']' |
Representerar ett värde för egenskapen med namn property_name eller matriselement med index array_index för en matris. Om egenskapen/matrisindexet inte finns eller om egenskapen/matrisindexet refereras till på ett värde som inte är ett objekt/matris, utvärderas uttrycket till ett odefinierat värde. |
unary_operator <scalar_expression> |
Representerar en operator som tillämpas på ett enda värde. |
<scalar_expression> binary_operator <scalar_expression> |
Representerar en operator som tillämpas på två värden. |
<scalar_function_expression> |
Representerar ett värde som definieras av ett resultat av ett funktionsanrop. |
udf_scalar_function |
Namnet på den användardefinierade skalärfunktionen. |
builtin_scalar_function |
Namnet på den inbyggda skalärfunktionen. |
<create_object_expression> |
Representerar ett värde som erhålls genom att skapa ett nytt objekt med angivna egenskaper och deras värden. |
<create_array_expression> |
Representerar ett värde som erhålls genom att skapa en ny matris med angivna värden som element |
parameter_name |
Representerar ett värde för det angivna parameternamnet. Parameternamn måste ha ett enda @ som första tecken. |
Exempel
Det vanligaste exemplet på ett skalärt uttryck är en matematisk ekvation.
SELECT VALUE
((2 + 11 % 7) - 2) / 2
[
2
]
I nästa exempel är resultatet av det skalära uttrycket ett booleskt värde:
SELECT
("Redmond" = "WA") AS isCitySameAsState,
("WA" = "WA") AS isStateSameAsState
[
{
"isCitySameAsState": false,
"isStateSameAsState": true
}
]
Kommentarer
- Alla argument måste definieras när du anropar en inbyggd eller användardefinierad skalärfunktion. Om något av argumenten är odefinierat anropas inte funktionen och resultatet är
undefined
. - Alla egenskaper som tilldelas odefinierat värde hoppas över och ingår inte i det skapade objektet när ett objekt skapas.
- Alla elementvärden som tilldelas odefinierat värde hoppas över och ingår inte i det skapade objektet när du skapar en matris. Det här hoppa gör att nästa definierade element tar plats på ett sådant sätt att den skapade matrisen inte hoppar över index.