PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak porównywać tablice w PostgreSQL

PostgreSQL bardzo ułatwia porównywanie tablic wartości za pomocą prostych operatorów. W tym artykule przyjrzymy się, jak porównywać tablice w bazie danych PostgreSQL.


Jak porównywać tablice w PostgreSQL

PostgreSQL umożliwia porównywanie tablic przy użyciu operatorów równości (=, <>), operatorów porządkowania (>, <,>=, <=), operatorów zawierania (@>, <@) i operatorów nakładania się (&&).

Gdy PostgreSQL porówna tablice, jako wynik zwraca t dla prawdy lub f dla fałszu.

Przyjrzyjmy się każdemu z tych operatorów jeden po drugim.


Porównaj tablice pod kątem równości

Operatory równości dokonują porównania element po elemencie, aby sprawdzić, czy dwie tablice są równe, czy nie.

Oto przykładowe zapytania SQL do porównania dwóch tablic przy użyciu operatorów równości. Następujące dwie tablice nie są równe.

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


Porównaj tablice dla zamówienia

Operatory porządkowania (>, <,>=, <=) dokonują porównania element po elemencie między dwiema tablicami, aby sprawdzić, czy każda para elementów spełnia wymagany warunek kolejności. Jeśli nie ma niezgodności, zwraca t, w przeciwnym razie f.

Oto przykład

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

W pierwszym porównaniu każdy element pierwszej tablicy jest>=każdym elementem drugiej tablicy. W związku z tym stajesz się prawdziwy. W drugim porównaniu pierwsza tablica nie ma czwartego elementu wymaganego do porównania z czwartym elementem drugiej tablicy. Dlatego porównanie kończy się niepowodzeniem i w rezultacie otrzymujesz fałsz.


Porównaj tablice pod kątem zawierania

Operatory zawierania (<@, @>) pozwalają sprawdzić, czy jedna tablica zawiera inną tablicę za pomocą operatora @> lub czy jedna tablica jest zawarta w innej tablicy za pomocą operatora <@.

#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


Porównaj tablice pod kątem nakładania się

Operator nakładania się (&&) pozwala sprawdzić, czy istnieją jakieś wspólne elementy w dwóch tablicach.

postgres=# select
postgres-# array[2, 4] && array[4, 3] as overlap1,
postgres-# array[0, 2] && array[1, 4] as overlap2;
 overlap1 | overlap2
----------+----------
 t        | f

Potrzebujesz narzędzia do raportowania dla PostgreSQL? Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oblicz następny klucz podstawowy - o określonym formacie

  2. Wstawiaj dane w 3 tabelach jednocześnie za pomocą Postgres

  3. Jak zadeklarować zmienną w PostgreSQL

  4. Połącz ciąg i liczbę w PostgreSQL

  5. Wartość Postgres SSLMode wymaga nieważności, gdy obsługa protokołu SSL nie jest skompilowana przy użyciu zewnętrznego opakowania danych