PostgreSQL membuatnya sangat mudah untuk membandingkan array nilai menggunakan operator sederhana. Pada artikel ini, kita akan melihat bagaimana membandingkan array di database PostgreSQL.
Cara Membandingkan Array di PostgreSQL
PostgreSQL memungkinkan Anda untuk membandingkan array menggunakan operator kesetaraan (=, <>), operator pengurutan (>, <,>=, <=), operator penahanan (@>, <@) dan operator tumpang tindih (&&).
Setelah PostgreSQL membandingkan array, ia mengembalikan t untuk true atau f untuk false sebagai hasilnya.
Mari kita lihat masing-masing operator ini satu per satu.
Bandingkan Array untuk Kesetaraan
Operator persamaan melakukan perbandingan elemen demi elemen untuk memeriksa apakah kedua larik tersebut sama atau tidak.
Berikut adalah contoh kueri SQL untuk membandingkan dua larik menggunakan operator persamaan. Dua larik berikut tidak sama.
postgres=# select array[2,3,4] = array[1,2,5] as compare;
compare
---------
f
postgres=# select array[2,3,4] <> array[1,2,5]
as compare;
compare
---------
t
Bandingkan Array untuk Urutan
Operator pengurutan (>, <,>=, <=) melakukan perbandingan elemen demi elemen antara dua larik untuk memeriksa apakah setiap pasangan elemen mengikuti kondisi urutan yang diperlukan. Jika tidak ada ketidakcocokan, ia mengembalikan t, jika tidak f.
Ini contohnya
postgres=# select array[1,3,5] >= array[1,3,4] as compare1, array[1,3,5] <= array[1,3,4,5] as compare2; compare1 | compare2 ----------+---------- t | f
Pada perbandingan pertama, setiap elemen larik pertama adalah>=setiap elemen larik kedua. Karenanya, Anda menjadi benar. Pada perbandingan kedua, array pertama tidak memiliki elemen ke-4, diperlukan untuk perbandingan dengan elemen ke-4 dari array kedua. Oleh karena itu, perbandingan gagal dan Anda mendapatkan hasil yang salah.
Bandingkan Array untuk Penahanan
Operator penahanan (<@, @>) memungkinkan Anda untuk memeriksa apakah satu larik berisi larik lain menggunakan operator @>, atau apakah satu larik berisi larik lain menggunakan operator <@.
#to check if elements of array['b', 'c', 'd'] contain elements of array['b', 'c'] postgres=# select array['b', 'c', 'd'] @> array['b', 'c'] as contains; contains ---------- t # to check if array[1, 2, 4] is contained by array[4, 5, 2, 1] postgres=#select array[1, 2, 4] <@ array[4, 5, 2, 1] as is_contained_by; is_contained_by ----------------- t
Bandingkan Array untuk Tumpang Tindih
Operator tumpang tindih (&&) memungkinkan Anda memeriksa apakah ada elemen umum dalam dua larik.
postgres=# select postgres-# array[2, 4] && array[4, 3] as overlap1, postgres-# array[0, 2] && array[1, 4] as overlap2; overlap1 | overlap2 ----------+---------- t | f
Butuh alat pelaporan untuk PostgreSQL? Ubiq memudahkan untuk memvisualisasikan data dalam hitungan menit, dan memantau di dasbor waktu nyata. Cobalah Hari Ini!