Zusammenfassung: In diesem Tutorial erfahren Sie, wie Sie mit SQL Server UNION
die Ergebnisse von zwei oder mehr Abfragen zu einer einzigen Ergebnismenge kombinieren.
Einführung in die SQL Server UNION
SQL Server UNION
ist eine der gesetzten Operationen, mit denen Sie die Ergebnisse zweier SELECT
– Anweisungen zu einer einzigen Ergebnismenge kombinieren können, die alle Zeilen enthält, die zu den SELECT
– Anweisungen in der Union gehören.,
Das Folgende veranschaulicht die Syntax des SQL Servers UNION
:
Code language: SQL (Structured Query Language) (sql)
Die folgenden Anforderungen sind für die Abfragen in der obigen Syntax erforderlich:
- Die Nummer und die Reihenfolge der Spalten müssen in beiden Abfragen gleich sein.
- Die Datentypen der entsprechenden Spalten müssen identisch oder kompatibel sein.
Das folgende Venn-Diagramm veranschaulicht, wie sich die Ergebnismenge der T1-Tabelle mit der Ergebnismenge der T2-Tabelle vereinigt:
UNION vs., UNION ALL
Standardmäßig entfernt der Operator UNION
alle doppelten Zeilen aus den Ergebnismengen. Wenn Sie jedoch die doppelten Zeilen beibehalten möchten, müssen Sie das Schlüsselwort ALL
explizit angeben, wie unten gezeigt:
Code language: SQL (Structured Query Language) (sql)
Mit anderen Worten, der Operator UNION
entfernt die doppelten Zeilen, während der Operator UNION ALL
die doppelten Zeilen in der endgültigen Ergebnismenge enthält.
UNION vs., JOIN
Der Join wie INNER JOIN
oder LEFT JOIN
kombiniert Spalten aus zwei Tabellen, während die UNION
Zeilen aus zwei Abfragen kombiniert.
Mit anderen Worten, join hängt die Ergebnismengen horizontal an, während union die Ergebnismenge vertikal anfügt.,div id=“7f8c7e0c1a“>
SQL Server UNION examples
See the following staffs
and customers
tables from the sample database:
UNION and UNION ALL examples
The following example combines names of staffs and customers into a single list:
It returns 1,454 rows.,
Die Tabelle staffs
enthält 10 Zeilen und die Tabelle customers 1.445 Zeilen, wie in den folgenden Abfragen gezeigt:
Da die Ergebnismenge der Union nur 1.454 Zeilen zurückgibt, wurde eine doppelte Zeile entfernt.
Um die doppelte Zeile einzuschließen, verwenden Sie die UNION ALL
wie in der folgenden Abfrage gezeigt:
Die Abfrage gibt erwartungsgemäß 1.455 Zeilen zurück.,
UNION und ORDER BY example
Um die vom Operator UNION
zurückgegebene Ergebnismenge zu sortieren, platzieren Sie die Klausel ORDER BY
in der letzten Abfrage wie folgt:
Code language: SQL (Structured Query Language) (sql)
Um beispielsweise die Vor-und Nachnamen von Kunden und Mitarbeitern zu sortieren, verwenden Sie die folgende Abfrage:
In diesem Tutorial haben Sie gelernt, wie Sie mit der SQL Server UNION
Zeilen aus mehreren Abfragen zu einer einzigen Ergebnismenge kombinieren.