sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo comparar matrices en PostgreSQL

PostgreSQL hace que sea muy fácil comparar matrices de valores utilizando operadores simples. En este artículo, veremos cómo comparar matrices en la base de datos PostgreSQL.


Cómo comparar arreglos en PostgreSQL

PostgreSQL le permite comparar matrices utilizando operadores de igualdad (=, <>), operadores de orden (>, <,>=, <=), operadores de contención (@>, <@) y operadores de superposición (&&).

Después de que PostgreSQL compara matrices, devuelve t para verdadero o f para falso como resultado.

Veamos cada uno de estos operadores uno por uno.


Comparar matrices para la igualdad

Los operadores de igualdad hacen una comparación elemento por elemento para verificar si las dos matrices son iguales o no.

Aquí hay ejemplos de consultas SQL para comparar dos matrices usando operadores de igualdad. Las siguientes dos matrices no son iguales.

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


Comparar arreglos por orden

Los operadores de orden (>, <,>=, <=) hacen una comparación elemento por elemento entre dos matrices para verificar si cada par de elementos sigue la condición de orden requerida. Si no hay desajuste devuelve t, de lo contrario f.

Aquí hay un ejemplo

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

En la primera comparación, cada elemento de la primera matriz es>=cada elemento de la segunda matriz. Por lo tanto, obtienes verdad. En la segunda comparación, la primera matriz no tiene el cuarto elemento, requerido para la comparación con el cuarto elemento de la segunda matriz. Por lo tanto, la comparación falla y obtiene falso como resultado.


Comparar arreglos para contención

Los operadores de contención (<@, @>) le permiten verificar si una matriz contiene otra matriz usando el operador @>, o si una matriz está contenida por otra matriz usando el operador <@.

#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


Comparar matrices para superposición

El operador de superposición (&&) le permite verificar si hay elementos comunes en dos matrices.

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

¿Necesita una herramienta de informes para PostgreSQL? Ubiq facilita la visualización de datos en minutos y el monitoreo en paneles en tiempo real. ¡Pruébalo hoy!