Delen via


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 undefinedhet 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.