Megosztás a következőn keresztül:


Skaláris kifejezések az Azure Cosmos DB for NoSQL-ben

A KÖVETKEZŐRE VONATKOZIK: NoSQL

A SELECT záradék támogatja a skaláris kifejezéseket. A skaláris kifejezés szimbólumok és operátorok kombinációja, amelyek kiértékelhetők egyetlen érték beolvasásához. Skaláris kifejezések például: állandók, tulajdonsághivatkozások, tömbelem-hivatkozások, aliashivatkozások vagy függvényhívások. A skaláris kifejezések operátorok használatával összetett kifejezésekké kombinálhatók.

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

Argumentumok

Leírás
<constant> Állandó értéket jelöl. Részletekért tekintse meg a Konstansok szakaszt.
input_alias A záradékban FROM bevezetett értékinput_alias.
Ez az érték garantáltan nem lesz meghatározatlan a bemenet nem definiált értékeit a program kihagyja.
<scalar_expression>.property_name Egy objektum tulajdonságának értékét jelöli. Ha a tulajdonság nem létezik, vagy a tulajdonság egy olyan értékre hivatkozik, amely nem objektum, akkor a kifejezés nem definiált értéket ad vissza.
<scalar_expression>'['"property_name"|array_index']' A tulajdonság értékét jelöli, amelynek neve property_name vagy tömbeleme egy tömb indexével array_index . Ha a tulajdonság-/tömbindex nem létezik, vagy a tulajdonság/tömb index nem objektum/tömb értékre hivatkozik, akkor a kifejezés nem definiált értékre lesz kiértékelve.
unary_operator <scalar_expression> Egyetlen értékre alkalmazott operátort jelöl.
<scalar_expression> binary_operator <scalar_expression> Két értékre alkalmazott operátort jelöl.
<scalar_function_expression> Függvényhívás eredménye által definiált értéket jelöl.
udf_scalar_function A felhasználó által definiált skaláris függvény neve.
builtin_scalar_function A beépített skaláris függvény neve.
<create_object_expression> A megadott tulajdonságokkal és értékekkel rendelkező új objektum létrehozásával kapott értéket jelöli.
<create_array_expression> Egy új tömb elemként megadott értékekkel történő létrehozásával kapott értéket jelöl
parameter_name A megadott paraméternév értékét jelöli. A paraméterneveknek első karakterként egyetlen @ karakterrel kell rendelkezniük.

Példák

A skaláris kifejezések leggyakoribb példája a matematikai egyenlet.

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

Ebben a következő példában a skaláris kifejezés eredménye logikai:

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

Megjegyzések

  • Minden argumentumot meg kell határozni egy beépített vagy felhasználó által definiált skaláris függvény meghívásakor. Ha az argumentumok bármelyike nincs meghatározva, a függvény nem lesz meghívva, és az eredmény az undefined.
  • A program kihagyja a nem definiált értékhez rendelt összes tulajdonságot, és az objektum létrehozásakor nem szerepel a létrehozott objektumban.
  • A program kihagyja a nem definiált értékhez rendelt elemértékeket, és tömb létrehozásakor nem szerepel a létrehozott objektumban. Ez a kihagyás miatt a következő definiált elem úgy kerül a helyére, hogy a létrehozott tömb ne hagyja ki az indexeket.