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.