PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana Membandingkan Array di PostgreSQL

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!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kembali ke readline versi 6.x di Homebrew untuk memperbaiki Postgresql?

  2. Lumen - Buat koneksi database saat runtime

  3. Setel ulang kunci utama PostgreSQL ke 1

  4. Dapatkan nilai default kolom tabel di Postgres?

  5. Bagaimana cara mempercepat penghitungan baris dalam tabel PostgreSQL?