Expressions scalaires dans Azure Cosmos DB for NoSQL

S’APPLIQUE À : NoSQL

La SELECTclause prend en charge les expressions scalaires. Une expression scalaire est une combinaison de symboles et d’opérateurs qui peut être évaluée pour obtenir une valeur unique. Voici quelques exemples d’expressions scalaires : constantes, références de propriété, références d’élément de tableau, références d’alias ou appels de fonction. Les expressions scalaires peuvent être combinées dans des expressions complexes utilisant des opérateurs.

Syntaxe

<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] ']'

Arguments

Description
<constant> Représente une valeur constante. Pour plus d'informations, consultez la section Constantes.
input_alias Représente une valeur définie par le input_alias introduit dans la clause FROM.
Cette valeur est assurée de ne pas être Undefined, car les valeurs Undefined dans l’entrée sont ignorées.
<scalar_expression>.property_name Représente une valeur de la propriété d’un objet. Si la propriété n’existe pas ou est référencée sur une valeur, qui n’est pas un objet, l’expression évaluée présente la valeur Undefined.
<scalar_expression>'['"property_name"|array_index']' Représente une valeur de la propriété portant le nom property_name ou l’élément de tableau avec l’index array_index d’un tableau. Si la propriété/l’index de tableau n’existe pas ou est référencée sur une valeur qui n’est pas un objet/tableau, alors l’expression évaluée présente la valeur Undefined.
unary_operator <scalar_expression> Représente un opérateur appliqué à une valeur unique.
<scalar_expression> binary_operator <scalar_expression> Représente un opérateur appliqué à deux valeurs.
<scalar_function_expression> Représente une valeur définie par le résultat d’un appel de fonction.
udf_scalar_function Nom de la fonction scalaire définie par l’utilisateur.
builtin_scalar_function Nom de la fonction scalaire intégrée.
<create_object_expression> Représente une valeur obtenue en créant un nouvel objet avec les propriétés spécifiées et leurs valeurs.
<create_array_expression> Représente une valeur obtenue en créant un nouveau tableau avec les valeurs spécifiées en tant qu’éléments
parameter_name Représente une valeur du nom de paramètre spécifié. Les noms de paramètre doivent avoir un @ unique comme premier caractère.

Exemples

L’exemple le plus courant d’une expression scalaire est une équation mathématique.

SELECT VALUE
    ((2 + 11 % 7) - 2) / 2
[
  2
]

Dans l'exemple suivant, le résultat de l'expression scalaire est un booléen :

SELECT
    ("Redmond" = "WA") AS isCitySameAsState,
    ("WA" = "WA") AS isStateSameAsState
[
  {
    "isCitySameAsState": false,
    "isStateSameAsState": true
  }
]

Notes 

  • Tous les arguments doivent être définis lors de l’appel d’une fonction scalaire intégrée ou définie par l’utilisateur. Si un des arguments n’est pas défini, la fonction n’est pas appelée et le résultat est undefined.
  • Lorsque vous créez un objet, toute propriété à laquelle est affectée une valeur Undefined est ignorée et n’est pas incluse dans l’objet créé.
  • Lorsque vous créez un groupe, toute valeur d’élément à laquelle est affectée une valeur Undefined est ignorée et n’est pas incluse dans le groupe créé. Ce saut fait que l’élément défini suivant prend sa place, de telle sorte que le tableau créé n’aura pas d’index ignorés.