In der Datenbankverwaltung mit SQL gibt es verschiedene Funktionen, die es uns erleichtern, Daten effizient zu bearbeiten und abzurufen. Zwei davon, auf die Entwickler und Datenanalysten häufig zurückgreifen, sind die UNION-Klausel und der IN-Operator. Im Folgenden finden Sie eine vollständige Anleitung zu ihren Funktionen, Nutzungsbedingungen und zur Schreibweise ihrer Syntax.
UNION-Klausel
Die UNION-Klausel ist eine Klausel in SQL, die verwendet wird, um zwei oder mehr Ergebnisse von SELECT-Anweisungen zu kombinieren.
Um diese Klausel zu verwenden, kann man Tabellen nicht willkürlich zusammenfügen. Es gibt feste Regeln, die eingehalten werden müssen, damit die Abfrage keinen Fehler erzeugt:
- Jede kombinierte SELECT-Anweisung muss dieselbe Anzahl von Spalten haben.
- Die Datentypen der einander entsprechenden Spalten müssen gleich oder kompatibel sein.
- Die Spalten in jeder SELECT-Anweisung müssen in derselben Reihenfolge stehen.
Standardmäßig wählt die UNION-Klausel nur unterschiedliche Werte aus und zeigt sie an. Das bedeutet, das System filtert die Ergebnisse automatisch, sodass es zu keiner Duplizierung von Daten kommt.
UNION-Syntax:
SQL
SELECT spaltenname(n) FROM tabelle1
UNION
SELECT spaltenname(n) FROM tabelle2;
UNION ALL-Klausel
Innerhalb der UNION-Familie gibt es auch eine Syntaxvariante namens UNION ALL.
Der Hauptunterschied zwischen beiden liegt in der Art und Weise, wie das System mit doppelten Daten umgeht. Wenn UNION Duplikate entfernt, lässt UNION ALL das Auftreten von Datenduplikaten zu. Diese Klausel zeigt alle Ergebniszeilen jeder kombinierten SELECT-Anweisung an, unabhängig davon, ob exakt dieselben Werte vorhanden sind oder nicht.
UNION ALL-Syntax:
SQL
SELECT spaltenname(n) FROM tabelle1
UNION ALL
SELECT spaltenname(n) FROM tabelle2;
Hinweis: Die Verwendung von UNION ALL ist in der Regel schneller als gewöhnliches UNION, da das Datenbanksystem keine zusätzliche Zeit für das Durchsuchen und Entfernen doppelter Zeilen aufwenden muss.
IN-Operator
Der IN-Operator ist ein logischer Operator, der der WHERE-Klausel hinzugefügt wird, um Daten anhand mehrerer möglicher Werte gleichzeitig zu filtern.
Dieser Operator wird oft als Kurzschreibweise angesehen, die den wiederholten Einsatz des OR-Operators bei der Auswahl nach mehreren Bedingungen ersetzt. Die Verwendung von IN macht SQL-Code wesentlich übersichtlicher, kompakter und leichter lesbar.
Syntax des IN-Operators (mit einer Liste konkreter Werte):
SQL
SELECT spaltenname(n) FROM tabellenname
WHERE spaltenname IN (wert1, wert2, …);
Syntax des IN-Operators (mit Unterabfrage / SELECT-Anweisung):
Neben der manuellen Definition von Werten können Sie auch eine weitere SELECT-Anweisung in Klammern setzen, um dynamisch eine Werteliste zu erzeugen.
SQL
SELECT spaltenname(n) FROM tabellenname
WHERE spaltenname IN (SELECT_ANWEISUNG);






