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} |
Это самые часто используемые функции для работы с массивами, которые скорее всего встретятся вам в реальной жизни. Но есть множество других, которые мы можете загуглить при необходимости.