SQL массивы: основные функции

Основные функции для работы с массивами

1. Подсчет количества элементов в массиве

Функция ARRAY_LENGTH возвращает длину массива:

SELECT name, ARRAY_LENGTH(favorite_colors, 1) AS colors_count
FROM users;
name colors_count
Alexander 2
Vladislav 2

2. Получение N-го элемента в массиве

Элементы массива индексируются с 1:

SELECT name, favorite_colors[1] AS first_color
FROM users;
name first_color
Alexander blue
Vladislav red

3. Поиск строк с наличием элемента в массиве

Оператор ANY проверяет, содержится ли элемент в массиве:

SELECT * FROM users
WHERE 'blue' = ANY(favorite_colors);
id name favorite_colors has_cars
7 Alexander {blue,green} {Porsche Cayman,Mercedes Benz E-classe}

4. Разворачивание массива

Функция UNNEST преобразует массив в набор строк:

SELECT id, name, UNNEST(has_cars) AS car
FROM users;
id name car
7 Alexander Porsche Cayman
7 Alexander Mercedes Benz E-classe
4 Vladislav Hyundai Solaris

5. Объединение массивов

Функция ARRAY_CAT объединяет два массива:

SELECT name, ARRAY_CAT(favorite_colors, ARRAY['black']) AS new_colors
FROM users;
name new_colors
Alexander {blue,green,black}
Vladislav {red,yellow,black}

Это самые часто используемые функции для работы с массивами, которые скорее всего встретятся вам в реальной жизни. Но есть множество других, которые мы можете загуглить при необходимости.