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] ']'
論争
| Description | |
|---|---|
<constant> |
定数値を表します。 詳細については、「 定数」 セクションを参照してください。 |
input_alias |
FROM句で導入されたinput_aliasによって定義された値を表します。 |
| この値は未定義ではないことが保証 されます 。入力の未定義 の値はスキップされます。 | |
<scalar_expression>.property_name |
オブジェクトのプロパティの値を表します。 プロパティが存在しない場合、またはプロパティがオブジェクトではない値で参照されている場合、式は 未定義 の値に評価されます。 |
<scalar_expression>'['"property_name"|array_index']' |
名前を持つプロパティの値を表 property_name または配列のインデックス array_index を持つ配列要素です。 プロパティ/配列インデックスが存在しない場合、またはプロパティ/配列インデックスがオブジェクト/配列ではない値で参照されている場合、式は未定義の値に評価されます。 |
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。 - 未定義の値が割り当てられているプロパティはスキップされ、オブジェクトの作成時に作成されたオブジェクトには含まれません。
- 未定義の値が割り当てられている要素値はスキップされ、配列の作成時に作成されたオブジェクトには含まれません。 このスキップにより、作成された配列がインデックスをスキップしないように、次に定義された要素がその代わりに使用されます。