Bagikan melalui


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 terdefinisinilai 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.