Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.