Dela via


Skalära uttryck i Azure Cosmos DB för NoSQL

GÄLLER FÖR: NoSQL

Satsen SELECT stöder skalära uttryck. Ett skalärt uttryck är en kombination av symboler och operatorer som kan utvärderas för att få ett enda värde. Exempel på skalära uttryck är: konstanter, egenskapsreferenser, matriselementreferenser, aliasreferenser eller funktionsanrop. Skalära uttryck kan kombineras till komplexa uttryck med operatorer.

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

Argument

beskrivning
<constant> Representerar ett konstant värde. Mer information finns i avsnittet Konstanter .
input_alias Representerar ett värde som definierats av den input_alias som introducerades i FROM -satsen.
Det här värdet är garanterat inte odefinierat odefinierade värden i indata hoppas över.
<scalar_expression>.property_name Representerar ett värde för egenskapen för ett objekt. Om egenskapen inte finns eller om egenskapen refereras till ett värde, som inte är ett objekt, utvärderas uttrycket till ett odefinierat värde.
<scalar_expression>'['"property_name"|array_index']' Representerar ett värde för egenskapen med namn property_name eller matriselement med index array_index för en matris. Om egenskapen/matrisindexet inte finns eller om egenskapen/matrisindexet refereras till på ett värde som inte är ett objekt/matris, utvärderas uttrycket till ett odefinierat värde.
unary_operator <scalar_expression> Representerar en operator som tillämpas på ett enda värde.
<scalar_expression> binary_operator <scalar_expression> Representerar en operator som tillämpas på två värden.
<scalar_function_expression> Representerar ett värde som definieras av ett resultat av ett funktionsanrop.
udf_scalar_function Namnet på den användardefinierade skalärfunktionen.
builtin_scalar_function Namnet på den inbyggda skalärfunktionen.
<create_object_expression> Representerar ett värde som erhålls genom att skapa ett nytt objekt med angivna egenskaper och deras värden.
<create_array_expression> Representerar ett värde som erhålls genom att skapa en ny matris med angivna värden som element
parameter_name Representerar ett värde för det angivna parameternamnet. Parameternamn måste ha ett enda @ som första tecken.

Exempel

Det vanligaste exemplet på ett skalärt uttryck är en matematisk ekvation.

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

I nästa exempel är resultatet av det skalära uttrycket ett booleskt värde:

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

Kommentarer

  • Alla argument måste definieras när du anropar en inbyggd eller användardefinierad skalärfunktion. Om något av argumenten är odefinierat anropas inte funktionen och resultatet är undefined.
  • Alla egenskaper som tilldelas odefinierat värde hoppas över och ingår inte i det skapade objektet när ett objekt skapas.
  • Alla elementvärden som tilldelas odefinierat värde hoppas över och ingår inte i det skapade objektet när du skapar en matris. Det här hoppa gör att nästa definierade element tar plats på ett sådant sätt att den skapade matrisen inte hoppar över index.