Bagikan melalui


Perbandingan Multinilai (ARRAY)

Kolom yang disimpan dalam indeks konten dapat memiliki beberapa nilai, dan kolom multinilai tersebut dapat dibandingkan dengan menggunakan predikat perbandingan ARRAY.

Predikat perbandingan ARRAY memiliki sintaks berikut:

...WHERE <column> <comp_op> [<quantifier>] <comparison_list>
                
...WHERE <column> <comp_op> <value>

Kesalahan dikembalikan jika referensi kolom bukan kolom multinilai. Jenis data kolom harus kompatibel dengan elemen daftar perbandingan. Jika perlu, referensi kolom dapat dilemparkan sebagai jenis data lain.

Operator perbandingan (comp_op) dapat menjadi salah satu operator perbandingan normal. Dalam perbandingan multinilai, operator perbandingan memiliki arti yang sedikit berbeda tergantung pada apakah kuantifier digunakan. Pengukur mengidentifikasi apakah perbandingan harus dibuat terhadap semua atau beberapa nilai dalam daftar perbandingan. Fungsi operator perbandingan diberikan dalam tabel yang menjelaskan setiap kuantifier (ALL dan SOME) nanti dalam dokumen ini.

Nilai setelah operator menentukan satu nilai harfiah yang dibandingkan dengan semua elemen kolom multinilai. Jika ada elemen yang cocok dengan nilai, predikatnya adalah true.

Daftar perbandingan menentukan array nilai harfiah yang dibandingkan dengan kolom multinilai. Sintaks untuk daftar perbandingan mengikuti:

ARRAY '['<literal> [,<literal>]']'

Penting

Ketahui sintaks daftar perbandingan. Kelompok harfiah yang membentuk daftar perbandingan harus dikelilingi oleh tanda kurung siku. Jangan mengelilingi elemen individual dari daftar perbandingan dengan tanda kurung siku. Oleh karena itu, ARRAY [1] dan ARRAY [1,2,3] valid, tetapi ARRAY [1[,2][,3]] tidak.

 

Metode yang digunakan untuk menentukan apakah perbandingan multinilai mengembalikan true atau false ditentukan oleh kuantifier opsional. Bagian berikut menjelaskan setiap kuantifier, dan cara kerja setiap operator perbandingan saat kuantifier digunakan.

Absent Quantifier

Jika tidak ada kuantifier yang ditentukan, setiap elemen di sisi kiri perbandingan dibandingkan dengan elemen dalam posisi yang sama di sisi kanan. Perbandingan dimulai dengan elemen pertama dalam array, dan berkembang melalui elemen terakhir. Jika semua elemen di sisi kiri setara dengan elemen yang sesuai di sisi kanan, jumlah elemen array digunakan untuk menentukan array mana yang lebih besar.

Tabel berikut menunjukkan pengoperasian operator perbandingan ketika tidak ada kuantifier yang ditentukan dan memberikan deskripsi singkat masing-masing.

Operator Deskripsi
= 'Sama dengan' mengembalikan true ketika setiap elemen sisi kiri memiliki nilai yang sama dengan elemen sisi kanan yang sesuai, dan kedua array memiliki jumlah elemen yang sama.
!= atau <> 'Tidak sama dengan' mengembalikan true ketika satu atau beberapa elemen sisi kiri memiliki nilai yang berbeda dari elemen sisi kanan yang sesuai, atau ketika array sisi kiri dan sisi kanan tidak memiliki jumlah elemen yang sama.
> 'Greater than' mengembalikan true ketika nilai setiap elemen sisi kiri lebih besar dari nilai elemen sisi kanan yang sesuai. Jika semua nilai elemen sisi kiri sama persis dengan elemen sisi kanan yang sesuai dan array sisi kiri memiliki lebih banyak elemen daripada array sisi kanan, 'lebih besar dari' mengembalikan true.
>= 'Lebih besar dari atau sama dengan' mengembalikan true ketika nilai setiap elemen sisi kiri lebih besar dari atau sama dengan nilai elemen sisi kanan yang sesuai. Jika semua nilai elemen sisi kiri sama dengan atau lebih besar dari elemen sisi kanan yang sesuai dan array sisi kiri memiliki elemen yang sama atau lebih dari array sisi kanan, 'lebih besar dari' mengembalikan true.
< 'Less than' mengembalikan true saat nilai setiap elemen sisi kiri kurang dari nilai elemen sisi kanan yang sesuai. 'Less than' juga mengembalikan true ketika sisi kiri memiliki elemen yang lebih sedikit daripada sisi kanan.
<= 'Kurang dari atau sama dengan' mengembalikan true ketika nilai setiap elemen sisi kiri kurang dari atau sama dengan nilai elemen sisi kanan yang sesuai. Jika semua nilai elemen sisi kiri sama dengan atau kurang dari elemen sisi kanan yang sesuai dan array sisi kiri memiliki elemen yang sama atau lebih sedikit daripada array sisi kanan, 'lebih besar dari' mengembalikan true.

 

ALL Quantifier

Pengkualifikasi ALL menentukan bahwa setiap elemen di sisi kiri dibandingkan dengan setiap elemen di sisi kanan. Untuk mengembalikan true, perbandingan harus benar untuk setiap elemen di sisi kiri jika dibandingkan dengan setiap elemen di sisi kanan. Jumlah elemen di sisi array kiri dan kanan tidak berpengaruh pada hasilnya.

Tabel berikut ini memperlihatkan bagaimana setiap operator perbandingan berfungsi dengan kuantifier ALL.

Operator Deskripsi
= 'Sama dengan' mengembalikan true ketika setiap nilai elemen sisi kiri sama dengan setiap nilai elemen sisi kanan.
!= atau <> 'Tidak sama dengan' mengembalikan true ketika setidaknya salah satu nilai elemen sisi kiri berbeda dari salah satu nilai elemen sisi kanan.
> 'Lebih besar dari' mengembalikan true ketika setiap nilai elemen sisi kiri lebih besar dari setiap nilai elemen sisi kanan.
>= 'Lebih besar dari atau sama dengan' mengembalikan true ketika setiap nilai elemen sisi kiri lebih besar dari atau sama dengan setiap nilai elemen sisi kanan.
< 'Less than' mengembalikan true ketika setiap nilai elemen sisi kiri kurang dari setiap nilai elemen sisi kanan.
<= 'Kurang dari atau sama dengan' mengembalikan true ketika setiap nilai elemen sisi kiri kurang dari atau sama dengan setiap nilai elemen sisi kanan.

 

Pengkualifikasi SOME (atau ANY)

Kuantifier SOME dan kuantifier ANY dapat digunakan secara bergantian. Seperti pengkualifikasi ALL, kuantifier SOME menentukan bahwa setiap elemen di sisi kiri dibandingkan dengan setiap elemen di sisi kanan. Untuk mengembalikan true, perbandingan harus benar untuk setidaknya salah satu elemen di sisi kiri jika dibandingkan dengan elemen apa pun di sisi kanan. Jumlah elemen di array sisi kiri dan kanan tidak berpengaruh pada hasilnya.

Tabel berikut ini memperlihatkan bagaimana setiap operator perbandingan berfungsi dengan pengukur SOME.

Operator Deskripsi
= 'Sama dengan' mengembalikan true jika setidaknya salah satu nilai elemen sisi kiri sama dengan salah satu nilai elemen sisi kanan.
!= atau <> 'Tidak sama dengan' mengembalikan true ketika tidak ada nilai elemen sisi kiri yang sama dengan salah satu nilai elemen sisi kanan.
> 'Lebih besar dari' mengembalikan true ketika setidaknya salah satu nilai elemen sisi kiri lebih besar dari salah satu nilai elemen sisi kanan.
>= 'Lebih besar dari atau sama dengan' mengembalikan true ketika setidaknya salah satu nilai elemen sisi kiri lebih besar dari atau sama dengan salah satu nilai elemen sisi kanan.
< 'Less than' mengembalikan true ketika setidaknya salah satu nilai elemen sisi kiri kurang dari salah satu nilai elemen sisi kanan.
<= 'Kurang dari atau sama dengan' mengembalikan true ketika setidaknya salah satu nilai elemen sisi kiri kurang dari atau sama dengan salah satu nilai elemen sisi kanan.

 

Contoh

Contoh berikut memeriksa apakah dokumen berada dalam kategori "Keuangan" atau "Perencanaan":

SELECT System.ItemUrl FROM SystemIndex WHERE System.Category =
SOME ARRAY['Finance','Planning']

Perbandingan berikut semuanya mengevaluasi true. Ingat bahwa dalam penggunaan aktual, sintaks kueri pencarian mengharuskan sisi kiri menjadi properti, bukan nilai harfiah.

ARRAY [1,2] > ARRAY [1,1]
ARRAY [1,2] > ARRAY [1,1,2]
ARRAY [1,2] < ARRAY [1,2,3]
ARRAY [1,2] = SOME ARRAY [1,12,27,35,2]
ARRAY [1,1] != ALL ARRAY [1,2]
ARRAY [1,20,21,22] < SOME ARRAY [0,40]
ARRAY [1,20,21,22] < ANY ARRAY [0,40]

Referensi

Predikat LIKE

Perbandingan Nilai Harfiah

Predikat NULL

Konseptual

Predikat Teks Lengkap

Predikat Non-Teks Lengkap