Sdílet prostřednictvím


Skalární výrazy ve službě Azure Cosmos DB for NoSQL

PLATÍ PRO: NoSQL

Klauzule SELECT podporuje skalární výrazy. Skalární výraz je kombinace symbolů a operátorů, které lze vyhodnotit za účelem získání jedné hodnoty. Mezi příklady skalárních výrazů patří: konstanty, odkazy na vlastnosti, odkazy na element pole, odkazy na aliasy nebo volání funkce. Skalární výrazy lze kombinovat do složitých výrazů pomocí operátorů.

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

Argumenty

Popis
<constant> Představuje konstantní hodnotu. Podrobnosti najdete v části Konstanty .
input_alias Představuje hodnotu definovanou představenou input_alias v klauzuli FROM .
Tato hodnota je zaručená, že není definována nedefinované hodnoty ve vstupu se přeskočí.
<scalar_expression>.property_name Představuje hodnotu vlastnosti objektu. Pokud vlastnost neexistuje nebo na vlastnost odkazuje na hodnotu, která není objektem, výraz se vyhodnotí jako nedefinovaná hodnota.
<scalar_expression>'['"property_name"|array_index']' Představuje hodnotu vlastnosti s názvem property_name nebo prvkem pole s indexem array_index pole. Pokud index vlastnosti nebo pole neexistuje nebo je odkazován na hodnotu, která není objektem nebo polem, vyhodnotí se výraz jako nedefinovaná hodnota.
unary_operator <scalar_expression> Představuje operátor, který se použije na jednu hodnotu.
<scalar_expression> binary_operator <scalar_expression> Představuje operátor, který se použije na dvě hodnoty.
<scalar_function_expression> Představuje hodnotu definovanou výsledkem volání funkce.
udf_scalar_function Název skalární funkce definované uživatelem
builtin_scalar_function Název předdefinované skalární funkce
<create_object_expression> Představuje hodnotu získanou vytvořením nového objektu se zadanými vlastnostmi a jejich hodnotami.
<create_array_expression> Představuje hodnotu získanou vytvořením nového pole se zadanými hodnotami jako prvky.
parameter_name Představuje hodnotu zadaného názvu parametru. Názvy parametrů musí mít jeden znak @ jako první znak.

Příklady

Nejběžnějším příkladem skalárního výrazu je matematická rovnice.

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

V tomto dalším příkladu je výsledkem skalárního výrazu logická hodnota:

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

Poznámky

  • Všechny argumenty musí být definovány při volání předdefinované skalární funkce nebo skalární funkce definované uživatelem. Pokud některý z argumentů není definován, funkce není volána a výsledek je undefined.
  • Všechny vlastnosti přiřazené nedefinované hodnoty se přeskočí a nejsou zahrnuty do vytvořeného objektu při vytváření objektu.
  • Jakákoli hodnota prvku, která je přiřazena nedefinovaná hodnota je vynechána a není zahrnuta do vytvořeného objektu při vytváření pole. Toto přeskočení způsobí, že další definovaný prvek bude probíhat tak, aby vytvořené pole nepřeskočilo indexy.