UNNEST
Разворачивает массив в набор строк — по строке на каждый элемент.
PostgreSQL 17.5
UNNEST(array[, ...])Параметры
- arrayanyarray
- Массив; если передать несколько массивов, они разворачиваются в соседние столбцы
Возвращаемое значение
Набор строк с элементами массива того же типа
Примеры
Массив в строки
PostgreSQL 17.5
SELECT UNNEST(ARRAY ['sql', 'python', 'java']) AS language;Элементы с номерами
PostgreSQL 17.5
SELECT letter,
position
FROM UNNEST(ARRAY ['a', 'b', 'c']) WITH ORDINALITY AS t(letter, position);Два массива рядом
PostgreSQL 17.5
SELECT *
FROM UNNEST(ARRAY ['a', 'b', 'c'], ARRAY [1, 2]) AS t(letter, num);Подробности
WITH ORDINALITY добавляет номер элемента. Если массивы разной длины, недостающие значения заполняются NULL. UNNEST — обратная операция к ARRAY_AGG; пустой массив или NULL дают пустой набор.