PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment comparer des tableaux dans PostgreSQL

PostgreSQL permet de comparer très facilement des tableaux de valeurs à l'aide d'opérateurs simples. Dans cet article, nous verrons comment comparer des tableaux dans la base de données PostgreSQL.


Comment comparer des tableaux dans PostgreSQL

PostgreSQL vous permet de comparer des tableaux à l'aide d'opérateurs d'égalité (=, <>), d'opérateurs d'ordre (>, <,>=, <=), d'opérateurs de confinement (@>, <@) et d'opérateurs de chevauchement (&&).

Une fois que PostgreSQL™ a comparé les tableaux, il renvoie t pour vrai ou f pour faux comme résultat.

Examinons chacun de ces opérateurs un par un.


Comparer les tableaux pour l'égalité

Les opérateurs d'égalité effectuent une comparaison élément par élément pour vérifier si les deux tableaux sont égaux ou non.

Voici des exemples de requêtes SQL pour comparer deux tableaux à l'aide d'opérateurs d'égalité. Les deux tableaux suivants ne sont pas égaux.

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


Comparer les baies pour la commande

Les opérateurs de commande (>, <,>=, <=) effectuent une comparaison élément par élément entre deux tableaux pour vérifier si chaque paire d'éléments respecte la condition d'ordre requise. S'il n'y a pas d'incompatibilité, il renvoie t, sinon f.

Voici un exemple

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

Dans la première comparaison, chaque élément du premier tableau est>=chaque élément du deuxième tableau. Par conséquent, vous devenez vrai. Dans la deuxième comparaison, le premier tableau n'a pas de 4e élément, requis pour la comparaison avec le 4e élément du deuxième tableau. Par conséquent, la comparaison échoue et vous obtenez faux en conséquence.


Comparer les baies pour le confinement

Les opérateurs de confinement (<@, @>) vous permettent de vérifier si un tableau contient un autre tableau à l'aide de l'opérateur @>, ou si un tableau est contenu par un autre tableau à l'aide de l'opérateur <@.

#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


Comparer les tableaux pour le chevauchement

L'opérateur de chevauchement (&&) vous permet de vérifier s'il existe des éléments communs dans deux tableaux.

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

Besoin d'un outil de reporting pour PostgreSQL ? Ubiq permet de visualiser facilement les données en quelques minutes et de les surveiller dans des tableaux de bord en temps réel. Essayez-le aujourd'hui !