Справочник по функциям

UNNEST

Разворачивает массив в набор строк — по строке на каждый элемент.

PostgreSQL 17.5
UNNEST(array[, ...])

Параметры

arrayanyarray
Массив; если передать несколько массивов, они разворачиваются в соседние столбцы

Возвращаемое значение

Набор строк с элементами массива того же типа

Примеры

Массив в строки

PostgreSQL 17.5
SELECT UNNEST(ARRAY ['sql', 'python', 'java']) AS language;
language
sql
python
java

Элементы с номерами

PostgreSQL 17.5
SELECT letter,
	position
FROM UNNEST(ARRAY ['a', 'b', 'c']) WITH ORDINALITY AS t(letter, position);
letterposition
a1
b2
c3

Два массива рядом

PostgreSQL 17.5
SELECT *
FROM UNNEST(ARRAY ['a', 'b', 'c'], ARRAY [1, 2]) AS t(letter, num);
letternum
a1
b2
c<NULL>

Подробности

WITH ORDINALITY добавляет номер элемента. Если массивы разной длины, недостающие значения заполняются NULL. UNNEST — обратная операция к ARRAY_AGG; пустой массив или NULL дают пустой набор.

Смотрите также