SQL Academy
Premium
Funktionsreferenz

UNNEST

Entfaltet ein Array in eine Menge von Zeilen, eine Zeile pro Element.

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

Parameter

arrayanyarray
Array; mehrere Arrays werden in nebeneinanderliegende Spalten entfaltet

Rückgabewert

Menge von Zeilen mit den Array-Elementen desselben Typs

Beispiele

Array in Zeilen

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

Elemente mit Nummern

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

Zwei Arrays nebeneinander

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

Details

WITH ORDINALITY fügt die Nummer des Elements hinzu. Sind die Arrays unterschiedlich lang, werden fehlende Werte mit NULL aufgefüllt. UNNEST ist das Gegenstück zu ARRAY_AGG; ein leeres Array oder NULL ergibt eine leere Menge.

Siehe auch