Udostępnij za pośrednictwem


Wyrażenia skalarne w usłudze Azure Cosmos DB for NoSQL

DOTYCZY: NoSQL

Klauzula SELECT obsługuje wyrażenia skalarne. Wyrażenie skalarne to kombinacja symboli i operatorów, które można ocenić w celu uzyskania pojedynczej wartości. Przykłady wyrażeń skalarnych to: stałe, odwołania do właściwości, odwołania do elementów tablicy, odwołania do aliasu lub wywołania funkcji. Wyrażenia skalarne można łączyć w wyrażenia złożone przy użyciu operatorów.

Składnia

<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

opis
<constant> Reprezentuje wartość stałą. Aby uzyskać szczegółowe informacje, zobacz sekcję Stałe.
input_alias Reprezentuje wartość zdefiniowaną przez input_alias wprowadzony w klauzuli FROM .
Ta wartość nie może być niezdefiniowana — niezdefiniowane wartości w danych wejściowych są pomijane.
<scalar_expression>.property_name Reprezentuje wartość właściwości obiektu. Jeśli właściwość nie istnieje lub właściwość jest przywoływane na wartości, która nie jest obiektem, wyrażenie daje w wyniku niezdefiniowaną wartość.
<scalar_expression>'['"property_name"|array_index']' Reprezentuje wartość właściwości z nazwą property_name lub elementem tablicy z indeksem array_index tablicy. Jeśli indeks właściwości/tablicy nie istnieje lub indeks właściwości/tablicy odwołuje się do wartości, która nie jest obiektem/tablicą, wyrażenie oblicza niezdefiniowaną wartość.
unary_operator <scalar_expression> Reprezentuje operator, który jest stosowany do pojedynczej wartości.
<scalar_expression> binary_operator <scalar_expression> Reprezentuje operator, który jest stosowany do dwóch wartości.
<scalar_function_expression> Reprezentuje wartość zdefiniowaną przez wynik wywołania funkcji.
udf_scalar_function Nazwa funkcji skalarnej zdefiniowanej przez użytkownika.
builtin_scalar_function Nazwa wbudowanej funkcji skalarnej.
<create_object_expression> Reprezentuje wartość uzyskaną przez utworzenie nowego obiektu z określonymi właściwościami i ich wartościami.
<create_array_expression> Reprezentuje wartość uzyskaną przez utworzenie nowej tablicy z określonymi wartościami jako elementami
parameter_name Reprezentuje wartość określonej nazwy parametru. Nazwy parametrów muszą mieć jeden znak @ jako pierwszy znak.

Przykłady

Najczęstszym przykładem wyrażenia skalarnego jest równanie matematyczne.

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

W następnym przykładzie wynik wyrażenia skalarnego jest wartością logiczną:

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

Uwagi

  • Wszystkie argumenty muszą być zdefiniowane podczas wywoływania wbudowanej lub zdefiniowanej przez użytkownika funkcji skalarnej. Jeśli którykolwiek z argumentów jest niezdefiniowany, funkcja nie jest wywoływana, a wynikiem jest undefined.
  • Każda właściwość, do której przypisano niezdefiniowaną wartość, jest pomijana i nie jest uwzględniana w utworzonym obiekcie podczas tworzenia obiektu.
  • Każda wartość elementu, której przypisano niezdefiniowaną wartość, jest pomijana i nie jest uwzględniana w utworzonym obiekcie podczas tworzenia tablicy. To pomijanie powoduje, że następny zdefiniowany element ma miejsce w taki sposób, że utworzona tablica nie pomija indeksów.