Tabellen mit UNION, INTERSECT und EXCEPT kombinieren
Mit den SET-Standardoperationen UNION, INTERSECT und EXCEPT/MINUS können Sie die Ergebnisse von zwei oder mehr SELECT-Anweisungen kombinieren, um komplexere Abfragen zu erstellen.
- UNION [DISTINCT] und UNION ALL
- INTERSECT [DISTINCT] und INTERSECT ALL
- EXCEPT [DISTINCT] oder MINUS [DISTINCT] und EXCEPT ALL, MINUS ALL
- Die Ergebnissets beider Abfragen müssen dieselbe Anzahl Spalten aufweisen.
- Die entsprechenden Spalten in den beiden Abfragen müssen denselben Datentyp haben
oder müssen implizit in denselben Datentyp konvertierbar sein.
Die erste Komponentenabfrage kann beispielsweise eine Spalte mit dem Datentyp CHAR enthalten und die entsprechende Spalte in der zweiten Komponentenabfrage kann eine VARCHAR-Spalte sein, und umgekehrt. Es ist jedoch nicht möglich, dass die erste Komponentenabfrage eine Spalte mit dem Typ DATE enthält und die entsprechende Spalte in der zweiten Komponente den Typ CHAR aufweist. Weitere Informationen zu Datentypkonvertierungen finden Sie unter Datentypförderung.
<SELECT-statement>
{UNION | INTERSECT | EXCEPT | MINUS} [ALL | DISTINCT]
<SELECT-statement>
{UNION | INTERSECT | EXCEPT | MINUS} [ALL | DISTINCT]
<SELECT-statement>]*
[ORDER BY …]
[LIMIT …]
- Wenn die Namen der entsprechenden Spalten übereinstimmen, verwendet SQL den betreffenden Spaltennamen im Ergebnis. Wenn sich die entsprechenden Spaltennamen unterscheiden, verwendet SQL den Spaltennamen aus der ersten Abfrage in der Gruppenanweisung. Wenn Sie eine Spalte im Ergebnis umbenennen wollen, müssen Sie in der ersten Abfrage eine AS-Klausel verwenden.
- Sie können eine optionale ORDER BY-Klausel nur in der letzten Abfrage in der Gruppenanweisung angeben. SQL wendet die Sortierung auf das endgültige kombinierte Ergebnis an.
- Sie können optional eine LIMIT-Klausel nach der ORDER BY-Klausel angeben. SQL wendet das Limit auf das endgültige kombinierte Ergebnis an.
- Sie können GROUP BY- und HAVING-Klauseln nur in Einzelabfragen angeben. Ihre Verwendung hat keine Auswirkungen auf das Ergebnis.