Der SQL IN Operator sucht eine Spalte nach einer Liste von Werten ab.
SELECT Spalten
FROM Tabelle
WHERE Spalte IN (Wert1, Wert2, …);
Der IN Operator wird nach der WHERE-Klausel eingesetzt. Die Werte werden in runden Klammern eingesetzt und mit Kommata (die man als OR Operatoren sehen kann) getrennt. Das bedeutet, dass die Bedingung „wahr“ ausgibt, wenn mindestens ein Wert in der Liste dem Wert in der Spalte entspricht. Es ist daher eine Liste von OR Bedingungen, bei denen der Vergleichsoperator Ist-Gleich (=) ist.
SQL IN - Beispiel
Ein Designer-Shop möchte überprüfen, welche Kleidungsstücke ausschließlich in der DACH-Region produziert wurden:
SELECT *
FROM Kleidung
WHERE Produktionsort IN ('Deutschland', 'Österreich', 'Schweiz');
Dasselbe Ergebnis ist mit einer Kette von OR Operatoren möglich:
SELECT *
FROM Kleidung
WHERE Produktionsort = 'Deutschland'
OR Produktionsort = 'Österreich'
OR Produktionsort = 'Schweiz';
Dieser Befehl ist allerdings umständlicher und länger. Je mehr Länder hinzugefügt werden, desto unübersichtlicher und fehleranfälliger wird die gesamte Abfrage.
Ein weiteres sinnvolles Anwendungsfeld ist der Ausschluss von gewissen Daten. Möchten wir alle Länder außerhalb der DACH-Region überprüfen, wird der NOT Operator benutzt:
SELECT *
FROM Kleidung
WHERE Produktionsort NOT IN ('Deutschland', 'Österreich', 'Schweiz');