Azure Cosmos DB for NoSQL のスカラー式
適用対象: NoSQL
SELECT
句ではスカラー式がサポートされます。 スカラー式は、1 つの値を取得するために評価できるシンボルと演算子の組み合わせです。 スカラー式の例としては、定数、プロパティの参照、配列要素の参照、別名の参照、関数の呼び出しなどがあります。 スカラー式は、演算子を使用して複雑な式に結合できます。
構文
<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] ']'
引数
説明 | |
---|---|
<constant> |
定数値を表します。 詳細については、「定数」セクションを参照してください。 |
input_alias |
FROM 句によって導入された input_alias で定義された値を表します。 |
この値は、undefined ではないことが保証されます。入力内の undefined 値はスキップされます。 | |
<scalar_expression>.property_name |
オブジェクトのプロパティの値を表します。 プロパティが存在しない場合、またはプロパティがオブジェクトではない値で参照されている場合、式は undefined 値として評価されます。 |
<scalar_expression>'['"property_name"|array_index']' |
名前 property_name を持つプロパティの値、または配列のインデックス array_index を持つ配列要素を表します。 プロパティ/配列インデックスが存在しない場合、またはプロパティ/配列インデックスがオブジェクト/配列ではない値で参照されている場合、式は undefined 値として評価されます。 |
unary_operator <scalar_expression> |
1 つの値に適用される演算子を表します。 |
<scalar_expression> binary_operator <scalar_expression> |
2 つの値に適用される演算子を表します。 |
<scalar_function_expression> |
関数呼び出しの結果によって定義された値を表します。 |
udf_scalar_function |
ユーザー定義のスカラー関数の名前です。 |
builtin_scalar_function |
組み込みのスカラー関数の名前です。 |
<create_object_expression> |
指定したプロパティとその値で新しいオブジェクトを作成することによって取得される値を表します。 |
<create_array_expression> |
指定した値を要素として新しい配列を作成することによって取得される値を表します。 |
parameter_name |
指定したパラメーターの値を表します。 パラメーター名は、最初の文字として 1 つの @ を使用する必要があります。 |
例
スカラー式の最も一般的な例は、数学の方程式です。
SELECT VALUE
((2 + 11 % 7) - 2) / 2
[
2
]
次の例では、スカラー式の結果はブール値です。
SELECT
("Redmond" = "WA") AS isCitySameAsState,
("WA" = "WA") AS isStateSameAsState
[
{
"isCitySameAsState": false,
"isStateSameAsState": true
}
]
解説
- 組み込みまたはユーザー定義のスカラー関数を呼び出すときには、すべての引数を定義する必要があります。 引数のいずれかが定義されていない場合、関数は呼び出されず、結果は
undefined
になります。 - オブジェクトを作成するときに、未定義の値が割り当てられているプロパティはすべてスキップされ、作成されたオブジェクトに含まれません。
- 配列を作成するときに、undefined 値が割り当てられている要素値はすべてスキップされ、作成されたオブジェクトに含まれません。 このスキップにより、作成された配列でインデックスがスキップされないように、次の定義済みの要素が代わりに配置されます。