Scalaire expressies in Azure Cosmos DB for NoSQL
VAN TOEPASSING OP: NoSQL
De SELECT
component ondersteunt scalaire expressies. Een scalaire expressie is een combinatie van symbolen en operatoren die kunnen worden geëvalueerd om één waarde te verkrijgen. Voorbeelden van scalaire expressies zijn: constanten, eigenschapsverwijzingen, matrixelementverwijzingen, aliasverwijzingen of functie-aanroepen. Scalaire expressies kunnen worden gecombineerd tot complexe expressies met behulp van operators.
Syntaxis
<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] ']'
Argumenten
Beschrijving | |
---|---|
<constant> |
Vertegenwoordigt een constante waarde. Zie de sectie Constanten voor meer informatie. |
input_alias |
Vertegenwoordigt een waarde die is gedefinieerd door de input_alias in de FROM component geïntroduceerde waarde. |
Deze waarde is gegarandeerd niet-gedefinieerde , niet-gedefinieerde waarden in de invoer worden overgeslagen. | |
<scalar_expression>.property_name |
Vertegenwoordigt een waarde van de eigenschap van een object. Als de eigenschap niet bestaat of als de eigenschap wordt verwezen naar een waarde die geen object is, wordt met de expressie een niet-gedefinieerde waarde geëvalueerd . |
<scalar_expression>'['"property_name"|array_index']' |
Vertegenwoordigt een waarde van de eigenschap met een naam property_name of matrixelement met een index array_index van een matrix. Als de eigenschaps-/matrixindex niet bestaat of de eigenschaps-/matrixindex wordt verwezen naar een waarde die geen object/matrix is, wordt met de expressie een niet-gedefinieerde waarde geëvalueerd. |
unary_operator <scalar_expression> |
Vertegenwoordigt een operator die wordt toegepast op één waarde. |
<scalar_expression> binary_operator <scalar_expression> |
Vertegenwoordigt een operator die wordt toegepast op twee waarden. |
<scalar_function_expression> |
Vertegenwoordigt een waarde die is gedefinieerd door een resultaat van een functie-aanroep. |
udf_scalar_function |
Naam van de door de gebruiker gedefinieerde scalaire functie. |
builtin_scalar_function |
Naam van de ingebouwde scalaire functie. |
<create_object_expression> |
Vertegenwoordigt een waarde die wordt verkregen door een nieuw object te maken met opgegeven eigenschappen en de bijbehorende waarden. |
<create_array_expression> |
Vertegenwoordigt een waarde die wordt verkregen door een nieuwe matrix met opgegeven waarden als elementen te maken |
parameter_name |
Vertegenwoordigt een waarde van de opgegeven parameternaam. Parameternamen moeten één @ hebben als het eerste teken. |
Voorbeelden
Het meest voorkomende voorbeeld van een scalaire expressie is een wiskundige vergelijking.
SELECT VALUE
((2 + 11 % 7) - 2) / 2
[
2
]
In dit volgende voorbeeld is het resultaat van de scalaire expressie een Booleaanse waarde:
SELECT
("Redmond" = "WA") AS isCitySameAsState,
("WA" = "WA") AS isStateSameAsState
[
{
"isCitySameAsState": false,
"isStateSameAsState": true
}
]
Opmerkingen
- Alle argumenten moeten worden gedefinieerd bij het aanroepen van een ingebouwde of door de gebruiker gedefinieerde scalaire functie. Als een van de argumenten niet is gedefinieerd, wordt de functie niet aangeroepen en is
undefined
het resultaat. - Een eigenschap waaraan een niet-gedefinieerde waarde is toegewezen, wordt overgeslagen en niet opgenomen in het gemaakte object bij het maken van een object.
- Een elementwaarde waaraan een niet-gedefinieerde waarde is toegewezen, wordt overgeslagen en niet opgenomen in het gemaakte object bij het maken van een matrix. Hierdoor wordt het volgende gedefinieerde element zodanig geplaatst dat de gemaakte matrix geen indexen overslaat.