В PostgreSQL функция UNNEST используется для преобразования массива в набор строк. Это полезно при работе с данными, хранящимися в массивном формате, когда требуется обработать их поэлементно.
Синтаксис
UNNEST(массив)
Функция принимает массив и возвращает его элементы в виде отдельных строк.
Примеры использования
Разворачивание одномерного массива
SELECT UNNEST(ARRAY['apple', 'banana', 'cherry']);
Результат:
apple
banana
cherry
Использование в запросах с JOIN
UNNEST можно использовать в комбинации с другими таблицами:
SELECT u.name, fruit
FROM users u, UNNEST(u.favorites) AS fruit;
Где favorites
— массив любимых фруктов пользователя.
Разворачивание нескольких массивов
Если передано несколько массивов одинаковой длины, UNNEST возвращает соответствующие элементы вместе:
SELECT * FROM UNNEST(ARRAY[1,2,3], ARRAY['a', 'b', 'c']);
Результат:
1 | a
2 | b
3 | c
Обработка NULL-значений
Если массив содержит NULL, он включается в результат:
SELECT UNNEST(ARRAY['one', NULL, 'three']);
Результат:
one
NULL
three