PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да сравняваме масиви в PostgreSQL

PostgreSQL прави много лесно сравняването на масиви от стойности с помощта на прости оператори. В тази статия ще разгледаме как да сравняваме масиви в PostgreSQL база данни.


Как да сравняваме масиви в PostgreSQL

PostgreSQL ви позволява да сравнявате масиви с помощта на оператори за равенство (=, <>), оператори за подреждане (>, <,>=, <=), оператори за ограничаване (@>, <@) и оператори за припокриване (&&).

След като PostgreSQL сравнява масиви, той връща t за true или f за false като резултат.

Нека разгледаме всеки един от тези оператори един по един.


Сравнете масиви за равенство

Операторите за равенство правят сравнение елемент по елемент, за да проверят дали двата масива са равни или не.

Ето примерни SQL заявки за сравняване на два масива с помощта на оператори за равенство. Следните два масива не са равни.

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


Сравнете масиви за поръчка

Операторите за подреждане (>, <,>=, <=) правят сравнение елемент по елемент между два масива, за да проверят дали всяка двойка елементи следва изискваното условие за поръчка. Ако няма несъответствие, връща t, иначе f.

Ето един пример

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

При първото сравнение всеки елемент от първия масив е>=​​всеки елемент от втория масив. Следователно, вие получавате истина. При второ сравнение първият масив няма 4-ти елемент, необходим за сравнение с 4-ти елемент от втория масив. Следователно сравнението е неуспешно и в резултат получавате невярно.


Сравнете масиви за задържане

Операторите за ограничаване (<@, @>) ви позволяват да проверите дали един масив съдържа друг масив с помощта на оператор @> или дали един масив се съдържа от друг масив с помощта на <@ оператор.

#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


Сравнете масиви за припокриване

Операторът за припокриване (&&) ви позволява да проверите дали има общи елементи в два масива.

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

Нуждаете се от инструмент за отчитане за PostgreSQL? Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте го днес!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Търсене в пълен текст от PostgreSQL 8.3

  2. Неуспешно зареждане на sql модули в клъстера на базата данни по време на инсталацията на PostgreSQL

  3. Производителност на TPC-H след PostgreSQL 8.3

  4. Как да превключвам бази данни в psql?

  5. PostgreSQL Connection Pooling:Част 1 – Плюсове и минуси