Bagikan melalui


Ekspresi skalar - Bahasa kueri di Cosmos DB (di Azure dan Fabric)

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 ke dalam ekspresi kompleks menggunakan operator.

Syntax

<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] ']'

Arguments

Description
<constant> Mewakili nilai konstanta. Lihat bagian Konstanta untuk detailnya.
input_alias Mewakili nilai yang ditentukan oleh yang input_alias diperkenalkan dalam FROM klausa.
Nilai ini dijamin tidak terdefinis –nilai yang tidak ditentukan 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 elemen nama property_name atau 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> Mewakili 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 dan nilainya.
<create_array_expression> Mewakili nilai yang diperoleh dengan membuat array baru dengan nilai yang ditentukan sebagai elemen
parameter_name Mewakili nilai nama parameter yang ditentukan. Nama parameter harus memiliki satu @ sebagai karakter pertama.

Examples

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
  }
]

Komentar

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