UNION und UNION ALL sind SQL-Befehle, mit denen Ergebnismengen aus mehreren SELECT-Abfragen kombiniert werden können. Dabei müssen diese Abfragen die gleiche Anzahl an Spalten mit denselben oder zumindest kompatiblen Datentypen zurückgeben.
UNION
Definition: UNION
kombiniert die Ergebnisse von zwei oder mehr SELECT-Abfragen in eine einzige Ergebnismenge. Dabei werden doppelte Datensätze automatisch entfernt.
Beispiel: Angenommen, wir haben zwei Tabellen – TabelleA
und TabelleB
. Beide haben eine Spalte namens „Stadt“.
SELECT Stadt FROM TabelleA
UNION
SELECT Stadt FROM TabelleB;
Wenn TabelleA
die Städte „Berlin“ und „München“ enthält und TabelleB
die Städte „München“ und „Hamburg“, dann gibt die Abfrage die Städte „Berlin“, „München“ und „Hamburg“ zurück (nicht in einer bestimmten Reihenfolge).
UNION ALL
Definition: UNION ALL
macht dasselbe wie UNION
, jedoch ohne die Entfernung von Duplikaten. Es kann also schneller sein, weil keine De-Duplizierung erforderlich ist.
Beispiel:
SELECT Stadt FROM TabelleA
UNION ALL
SELECT Stadt FROM TabelleB;
Mit denselben Daten in TabelleA
und TabelleB
wie im obigen Beispiel gibt die Abfrage „Berlin“, „München“, „München“ und „Hamburg“ zurück.
Unterschiede zwischen den Datenbanksystemen:
- MSSQL (Microsoft SQL Server):
- Unterstützt sowohl
UNION
als auchUNION ALL
. - Die Reihenfolge der Ergebnisse ist nicht garantiert, es sei denn, es wird eine
ORDER BY
-Klausel hinzugefügt (dieORDER BY
-Klausel sollte nach dem letztenSELECT
-Statement stehen).
- Unterstützt sowohl
- Oracle:
- Unterstützt sowohl
UNION
als auchUNION ALL
. - Ähnlich wie bei MSSQL ist die Reihenfolge der Ergebnisse ohne
ORDER BY
nicht garantiert.
- Unterstützt sowohl
- IBM DB2:
- Unterstützt auch beide Befehle.
- Die Syntax und das Verhalten sind im Wesentlichen konsistent mit den anderen Systemen.
- Teradata:
- Unterstützt ebenfalls
UNION
undUNION ALL
. - Wiederum ist die Reihenfolge der Ergebnisse nicht garantiert, wenn keine
ORDER BY
-Klausel verwendet wird.
- Unterstützt ebenfalls
UNION
und UNION ALL
sind in allen vier Datenbanksystemen verfügbar und funktionieren ähnlich. Der Hauptunterschied zwischen den beiden ist das De-Duplizieren von Datensätzen bei UNION
. Es ist immer wichtig, die spezifische Dokumentation des jeweiligen Datenbanksystems zu konsultieren, da es subtile Unterschiede oder zusätzliche Funktionen geben kann.
Hinterlasse jetzt einen Kommentar