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
UNIONals 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
UNIONals auchUNION ALL. - Ähnlich wie bei MSSQL ist die Reihenfolge der Ergebnisse ohne
ORDER BYnicht 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
UNIONundUNION 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