SQL Academy
Premium
Funktionsreferenz

UNNEST

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

PostgreSQL 17.9
UNNEST(array[, ...])
  • [ ]optionaler Teil
  • ...kann wiederholt werden
array
Array; mehrere Arrays werden in nebeneinanderliegende Spalten entfaltet
anyarray

Rückgabewert

Menge von Zeilen mit den Array-Elementen desselben Typs

Beispiele

Array in Zeilen

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

Elemente mit Nummern

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

Zwei Arrays nebeneinander

PostgreSQL 17.9
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