Ekspresi skalar di Azure Cosmos DB untuk NoSQL
BERLAKU UNTUK: NoSQL
Klausa SELECT
mendukung ekspresi skalar. Ekspresi skalar adalah kombinasi simbol dan operator yang dapat dievaluasi untuk mendapatkan satu nilai. Contoh ekspresi skalar meliputi: konstanta, referensi properti, referensi elemen array, referensi alias, atau panggilan fungsi. Ekspresi skalar dapat digabungkan menjadi ekspresi kompleks menggunakan operator.
Sintaks
<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] ']'
Argumen
Deskripsi | |
---|---|
<constant> |
Mewakili konstanta. Lihat bagian Konstanta untuk detail selengkapnya. |
input_alias |
Mewakili nilai yang ditentukan oleh input_alias yang diperkenalkan dalam klausulFROM . |
Nilai ini dijamin tidak akan terdefinisi –nilai yang tidak terdefinisi dalam input dilewati. | |
<scalar_expression>.property_name |
Mewakili nilai properti objek. Jika properti tidak ada atau properti direferensikan pada nilai, yang bukan objek, maka ekspresi mengevaluasi ke nilai yang tidak ditentukan . |
<scalar_expression>'['"property_name"|array_index']' |
Mewakili nilai properti dengan nama property_name atau elemen array dengan indeks array_index array. Jika indeks properti/array tidak ada atau indeks properti/array direferensikan pada nilai yang bukan objek/array, maka ekspresi mengevaluasi ke nilai yang tidak ditentukan. |
unary_operator <scalar_expression> |
Mewakili operator yang diterapkan ke satu nilai. |
<scalar_expression> binary_operator <scalar_expression> |
Merepresentasikan operator yang diterapkan ke dua nilai. |
<scalar_function_expression> |
Mewakili nilai yang ditentukan oleh hasil panggilan fungsi. |
udf_scalar_function |
Nama fungsi skalar yang ditentukan pengguna. |
builtin_scalar_function |
Nama fungsi skalar bawaan. |
<create_object_expression> |
Mewakili nilai yang diperoleh dengan membuat objek baru dengan properti tertentu beserta nilai properti tersebut. |
<create_array_expression> |
Mewakili nilai yang diperoleh dengan membuat array baru dengan nilai yang ditentukan sebagai elemen |
parameter_name |
Mewakili nilai dari nama parameter yang ditentukan. Nama parameter harus memiliki satu @ sebagai karakter pertama. |
Contoh
Contoh ekspresi skalar yang paling umum adalah persamaan matematika.
SELECT VALUE
((2 + 11 % 7) - 2) / 2
[
2
]
Dalam contoh berikutnya ini, hasil ekspresi skalar adalah boolean:
SELECT
("Redmond" = "WA") AS isCitySameAsState,
("WA" = "WA") AS isStateSameAsState
[
{
"isCitySameAsState": false,
"isStateSameAsState": true
}
]
Keterangan
- Semua argumen harus ditentukan saat memanggil fungsi skalar bawaan atau yang ditentukan pengguna. Jika salah satu argumen tidak terdefinisi, fungsi tidak dipanggil, dan hasilnya adalah
undefined
. - Properti apa pun yang diberi nilai yang tidak ditentukan dilewati dan tidak disertakan dalam objek yang dibuat saat membuat objek.
- Nilai elemen apa pun yang ditetapkan nilai yang tidak ditentukan dilewati dan tidak disertakan dalam objek yang dibuat saat membuat array. Lewati ini menyebabkan elemen yang ditentukan berikutnya mengambil tempatnya sedih sehingga array yang dibuat tidak melewati indeks.