FREE tools

UNNEST in SQL: So zerlegst du Arrays und Nested Data richtig

Lukas Fuchs vor 1 Monat Datenbanken & ORM 3 Min. Lesezeit

Wenn du Arrays oder verschachtelte Daten in SQL sauber auflösen willst, führt an UNNEST kein Weg vorbei. Ich zeige dir, wie ich es nutze, wann es sinnvoll ist und welche Fehler du vermeiden musst.

UNNEST in SQL

UNNEST in SQL ist eines dieser Features, das dir sofort Zeit spart, wenn du mit Arrays oder verschachtelten Daten arbeitest. Statt komplizierte Workarounds zu bauen, zerlege ich damit Daten direkt in einzelne Zeilen. Das macht Abfragen einfacher, Analysen sauberer und Reports deutlich flexibler.

Was macht UNNEST in SQL?

UNNEST nimmt ein Array oder eine verschachtelte Struktur und macht daraus mehrere Zeilen. Genau das ist der Punkt. Ich habe also nicht mehr eine Zeile mit vielen Werten in einem Feld, sondern pro Wert eine eigene Zeile.

Ein einfaches Beispiel:

SELECT UNNEST(ARRAY[1, 2, 3]);

Das Ergebnis sind drei Zeilen mit den Werten 1, 2 und 3. Kein Zauber. Nur sauberer Datenzugriff.

Wann ich UNNEST in SQL nutze

Ich nutze UNNEST in SQL, wenn Daten nicht normalisiert sind oder wenn ein Feld mehrere Werte enthält. Typische Fälle:

  • Tags, Kategorien oder Labels in einem Array
  • Produktlisten in Bestellungen
  • Events mit mehreren Attributen
  • JSON-Strukturen mit verschachtelten Arrays
  • Analytics-Daten in BigQuery, PostgreSQL oder Snowflake

Wenn ich das nicht auflöse, wird jede Analyse unnötig schwer. Mit UNNEST mache ich die Daten direkt auswertbar.

UNNEST in SQL: Grundsyntax

Die Syntax hängt leicht vom Datenbanksystem ab. Das Prinzip bleibt gleich. Ich zeige dir die gängigen Varianten.

PostgreSQL

SELECT *
FROM UNNEST(ARRAY['A', 'B', 'C']) AS t(value);

Mehr dazu findest du in der offiziellen PostgreSQL-Dokumentation: PostgreSQL Array Functions.

BigQuery

SELECT value
FROM UNNEST(['A', 'B', 'C']) AS value;

BigQuery beschreibt das hier: BigQuery Arrays.

Snowflake

SELECT value
FROM TABLE(FLATTEN(input => ARRAY_CONSTRUCT('A', 'B', 'C')));

Snowflake nutzt oft FLATTEN statt klassischem UNNEST. Die Doku dazu: Snowflake FLATTEN.

UNNEST in SQL mit mehreren Spalten

Oft reicht ein Array mit einem Wert nicht. Ich will den Wert zusammen mit einer ID, einem Datum oder einer Kategorie behalten. Dann kombiniere ich UNNEST mit einer bestehenden Tabelle.

SELECT
  user_id,
  tag
FROM users,
UNNEST(tags) AS tag;

Das ist stark, weil ich jede Zeile sauber aufsplitte und trotzdem den Kontext behalte.

Worauf ich bei UNNEST in SQL achte

UNNEST ist einfach. Aber einfach heißt nicht automatisch sauber. Hier sind die Dinge, die ich immer prüfe:

  • Reihenfolge: Manche Systeme behalten die Reihenfolge nicht automatisch. Wenn sie wichtig ist, speichere ich sie explizit mit einem Index.
  • Leere Arrays: Ein leeres Array kann zu null Ergebnissen führen. Das muss ich im Query-Design einkalkulieren.
  • NULL-Werte: NULL ist nicht dasselbe wie ein leeres Array. Das macht einen echten Unterschied in der Analyse.
  • Duplikate: UNNEST entfernt keine Duplikate. Wenn Werte mehrfach vorkommen, bleiben sie mehrfach drin.
  • Performance: Bei sehr großen Arrays kann die Zeilenzahl explodieren. Dann filtere ich früh und gezielt.

UNNEST in SQL mit JOIN kombinieren

Ein häufiger Anwendungsfall ist der Join mit einer anderen Tabelle. Genau hier wird UNNEST richtig nützlich.

SELECT
  o.order_id,
  item
FROM orders o
CROSS JOIN UNNEST(o.items) AS item;

Ich verwende CROSS JOIN, wenn ich jedes Element aus dem Array mit der Ursprungzeile verknüpfen will. Das ist oft der schnellste Weg, um Bestelldaten, Eventdaten oder User-Events sauber aufzubrechen.

UNNEST in SQL für JSON-Daten

Viele moderne Daten liegen nicht mehr sauber normalisiert in Tabellen. Sie kommen als JSON rein. Dann ist UNNEST oft der erste Schritt, um aus Chaos wieder Struktur zu machen.

Wenn in einem JSON-Feld ein Array steckt, hole ich es raus, flache es ab und arbeite weiter mit normalen SQL-Operationen. Das ist viel besser, als alles im Anwendungscode zu lösen.

Die besten Tipps für saubere UNNEST-Queries

  • Filter so früh wie möglich, bevor du große Arrays auflöst.
  • Gib Spalten klare Aliase, damit deine Query lesbar bleibt.
  • Prüfe NULL und leere Arrays getrennt.
  • Nutze Aggregationen nach dem UNNEST, wenn du wieder auf eine höhere Ebene zurück willst.
  • Dokumentiere die Datenstruktur, damit niemand später raten muss, was im Array steckt.

Häufige Fehler bei UNNEST in SQL

Ich sehe immer wieder dieselben Fehler:

  • UNNEST wird ohne Alias verwendet, und die Query wird unlesbar.
  • Mehrere Arrays werden falsch kombiniert und erzeugen falsche Zeilenmengen.
  • NULL wird mit leerem Array verwechselt.
  • Es wird unnötig früh unnested, obwohl erst später ein Filter greift.
  • Die Abfrage wird nicht getestet, obwohl ein einzelnes Array komplett andere Ergebnisse erzeugen kann.

Mein Ansatz ist simpel: erst verstehen, dann auflösen, dann filtern, dann auswerten.

Wann UNNEST in SQL die falsche Lösung ist

UNNEST ist stark, aber nicht immer die beste Wahl. Wenn ich die Daten dauerhaft analysiere, ist eine saubere Normalisierung oft besser. Wenn Arrays nur aus schlechtem Datenmodell entstehen, sollte ich die Quelle lieber reparieren statt alles permanent zu zerlegen.

Ich nutze UNNEST also nicht als Krücke für schlechtes Design. Ich nutze es als Werkzeug für schnelle, klare Analysen.

Fazit zu UNNEST in SQL

UNNEST in SQL ist eines der nützlichsten Werkzeuge für Arrays, JSON und verschachtelte Daten. Es macht Daten auswertbar, Queries sauberer und Analysen schneller. Wenn ich weiß, wie ich es richtig einsetze, spare ich mir unnötige Komplexität und komme direkt zu brauchbaren Ergebnissen. Genau deshalb gehört UNNEST in SQL in jedes SQL-Playbook.

Weitere Beiträge

Folge uns

Neue Beiträge

Webdesign & UX

Excel wenn Farbe Wert: So prüfst du Zellfarben und gibst Werte gezielt aus

AUTOR • Aug 16, 2026
DevOps & Deployment

MSI Utility V3: MSI-Grafikkarten richtig konfigurieren, ohne Rätselraten

AUTOR • Aug 16, 2026
Webdesign & UX

Excel automatische Sortierung: So hältst du deine Daten ohne manuelles Nacharbeiten sauber

AUTOR • Aug 16, 2026
Webdesign & UX

Mac Tastenkombinationen PDF Deutsch 2024: Die wichtigsten Shortcuts für schnelleres Arbeiten

AUTOR • Aug 15, 2026
Webdesign & UX

Forza Horizon 5 GB: Wie viel Speicher du wirklich brauchst und wie du Platz sparst

AUTOR • Aug 15, 2026
Backend-Entwicklung

Objektcode verstehen: Bedeutung, Einsatz und warum er für Entwickler wichtig ist

AUTOR • Aug 15, 2026
Webdesign & UX

Excel Zellen sperren und Blattschutz entfernen: So schützt du Tabellen richtig

AUTOR • Aug 15, 2026
Backend-Entwicklung

Color Index VBA: Farben in Excel per Code steuern, ohne Chaos

AUTOR • Aug 15, 2026
Backend-Entwicklung

Debugmodus: Was er ist, wie du ihn aktivierst und Fehler schneller findest

AUTOR • Aug 15, 2026
Performance & SEO

Excel Teilsumme: So berechnest du Teilbeträge schnell, sauber und ohne Chaos

AUTOR • Aug 15, 2026
Backend-Entwicklung

MBR wiederherstellen: So reparierst du den Master Boot Record schnell und sicher

AUTOR • Aug 15, 2026
Webdesign & UX

Email HTML: So baust du bessere Mails, die wirklich gelesen werden

AUTOR • Aug 14, 2026
Backend-Entwicklung

Apex Server: Was dahintersteckt, wie du ihn sinnvoll nutzt und worauf du achten musst

AUTOR • Aug 14, 2026
Datenbanken & ORM

Dynamischer Speicher: Was er ist, wie er funktioniert und wann er Sinn macht

AUTOR • Aug 14, 2026
Datenbanken & ORM

MySQL JOIN UPDATE richtig nutzen: So aktualisierst du Tabellen per JOIN ohne Chaos

AUTOR • Aug 14, 2026
Datenbanken & ORM

Effizientes Update in MongoDB: Mit dem Befehl `updateMany` zum Ziel

AUTOR • Aug 14, 2026
DevOps & Deployment

PowerShell Ausgabe schreiben: So speicherst du Output sauber in Datei, Variable und Log

AUTOR • Aug 14, 2026
DevOps & Deployment

GPO Server: Gruppenrichtlinien-Server richtig verstehen, einrichten und nutzen

AUTOR • Aug 14, 2026
DevOps & Deployment

Windows Update Ikon: Bedeutung, Funktion und was du tun kannst, wenn es nervt

AUTOR • Aug 14, 2026
Performance & SEO

Latch Up verstehen: Ursachen, Symptome und wie du es schnell in den Griff bekommst

AUTOR • Aug 14, 2026

Beliebte Beiträge

Webdesign & UX

Die Kunst der perfekten Textseite: Tipps für ansprechende Inhalte

AUTOR • Jul 31, 2025
Backend-Entwicklung

Sys 3: Ein umfassender Leitfaden zur Systemdiagnose und -optimierung

AUTOR • Jul 27, 2025
Webdesign & UX

Die Geheimnisse des Advanced Table Cut 52: Alles was Sie wissen müssen

AUTOR • Jul 16, 2025
DevOps & Deployment

Die richtigen Firewall-Ports für WSUS: So konfigurieren Sie Ihre Sicherheitsrichtlinien

AUTOR • Apr 15, 2026
DevOps & Deployment

Die ultimative Anleitung zur Einrichtung einer HTTPS-Verbindung

AUTOR • Jul 15, 2025
Datenbanken & ORM

Clearout: Die Nummer Eins für die Datenbereinigung und E-Mail-Rettung

AUTOR • Jul 10, 2025
Frontend-Entwicklung

StartApp für Android: So Umsatz steigern und App monetarisieren

AUTOR • Jul 04, 2025
DevOps & Deployment

Die Windows 11 Taskleiste anpassen: Tipps und Tricks für die optimale Nutzung

AUTOR • Jun 27, 2025
Webdesign & UX

Verlorene Botschaften: Gelöschte E-Mails Wiederherstellen leicht gemacht

AUTOR • Jun 24, 2025
DevOps & Deployment

Der ultimative Leitfaden für ein UEFI Update: Alles, was Sie wissen müssen

AUTOR • Jun 21, 2025
DevOps & Deployment

Outlook Postfach sichern: Ein umfassender Leitfaden für mehr Datensicherheit

AUTOR • Jun 20, 2025
Backend-Entwicklung

LINQ: Die Kraft der Datenabfrage in .NET entdecken

AUTOR • Jun 20, 2025
Datenbanken & ORM

Picr: Die innovative Plattform zur Bildweiterverarbeitung

AUTOR • Jul 10, 2025
Frontend-Entwicklung

Entschlüsselung des Begriffs: Was ist 'ref'?

AUTOR • Jul 10, 2025
Full-Stack

Scatterplots in R: Grafikvisualisierung für Datenanalyse leicht gemacht

AUTOR • Jul 03, 2025
Performance & SEO

Die besten kostenlosen Audio CD MP3 Converter: Musik in Höchstform

AUTOR • Jul 03, 2025
APIs & Microservices

Alles was du über NAT IP wissen musst: Vorteile, Funktionen und Einsatzmöglichkeiten

AUTOR • Jul 02, 2025
APIs & Microservices

Seitenkanal Angriff: Alles, was Sie wissen müssen um Systeme zu schützen

AUTOR • Jul 01, 2025
Webdesign & UX

So vergrößern Sie Bilder in Photoshop ohne Qualitätsverlust – Eine Schritt-für-Schritt-Anleitung

AUTOR • Jun 29, 2025
Webdesign & UX

Excel Arbeitsmappen vergleichen: Tipps und Tools für einen effizienten Vergleich

AUTOR • Jun 27, 2025