Zurück zu: SQL Tutorial
Der SQL IN Operator
Mit dem IN
Operator können Sie mehrere Werte in einer WHERE
Klausel angeben.
Der IN
Operator ist eine Abkürzung für mehrere ODER
Bedingungen.
Beispiel
Alle Kunden aus „Deutschland“, „Frankreich“ oder „Großbritannien“ zurückgeben
SELECT * FROM Customers
WHERE Country IN ('Germany', 'France', 'UK');
Syntax
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);
Demo Datenbank
Nachfolgend sehen Sie eine Auswahl aus der in den Beispielen verwendeten Kundentabelle:
KundenID | Kundenname | Kontaktname | Address | Stadt | Postleitzahl | Land |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
NICHT IN
Durch die Verwendung des Schlüsselworts NOT
vor dem IN
Operator geben Sie alle Datensätze zurück, die KEINER der Werte in der Liste sind.
Beispiel
Alle Kunden zurückgeben, die NICHT aus „Deutschland“, „Frankreich“ oder „Großbritannien“ kommen:
SELECT * FROM Customers
WHERE Country NOT IN ('Germany', 'France', 'UK');
IN (AUSWÄHLEN)
Sie können IN
auch mit einer Unterabfrage in der WHERE
Klausel verwenden.
Mit einer Unterabfrage können Sie alle Datensätze aus der Hauptabfrage zurückgeben, die im Ergebnis der Unterabfrage vorhanden sind.
Beispiel
Gibt alle Kunden zurück, die eine Bestellung in der Tabelle „Bestellungen“ haben:
SELECT * FROM Customers
WHERE CustomerID IN (SELECT CustomerID FROM Orders);
NICHT IN (AUSWÄHLEN)
Das Ergebnis im obigen Beispiel hat 74 Datensätze zurückgegeben, was bedeutet, dass es 17 Kunden gibt, die keine Bestellungen aufgegeben haben.
Lassen Sie uns mithilfe des NOT IN
Operators überprüfen, ob dies korrekt ist.
Beispiel
Gibt alle Kunden zurück, die KEINE Bestellungen in der Tabelle „Bestellungen“ aufgegeben haben:
SELECT * FROM Customers
WHERE CustomerID NOT IN (SELECT CustomerID FROM Orders);
Der SQL BETWEEN Operator
Der Operator BETWEEN
wählt Werte innerhalb eines bestimmten Bereichs aus. Die Werte können Zahlen, Text oder Daten sein.
Der Operator BETWEEN
ist inklusiv: Anfangs- und Endwerte sind eingeschlossen.
Beispiel
Wählt alle Produkte mit einem Preis zwischen 10 und 20 aus:
SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;
Syntax
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
Demo Datenbank
Nachfolgend sehen Sie eine Auswahl aus der in den Beispielen verwendeten Produkttabelle:
ProduktID | Produktname | LieferantenID | KategorieID | Einheit | Preis |
---|---|---|---|---|---|
1 | Chais | 1 | 1 | 10 Boxen x 20 Taschen | 18 |
2 | Chang | 1 | 1 | 24 – 12 oz Flaschen | 19 |
3 | Aniseed Syrup | 1 | 2 | 12 – 550 ml Flaschen | 10 |
4 | Chef Anton’s Cajun Seasoning | 2 | 2 | 48 – 6 oz Gläser | 22 |
5 | Chef Anton’s Gumbo Mix | 2 | 2 | 36 Boxen | 21.35 |
NICHT ZWISCHEN
Um die Produkte außerhalb des Bereichs des vorherigen Beispiels anzuzeigen, verwenden Sie NOT BETWEEN
:
Beispiel
SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;
ZWISCHEN mit IN
Das folgende SQL Statement wählt alle Produkte mit einem Preis zwischen 10 und 20 aus. Außerdem muss die CategoryID entweder 1,2 oder 3 sein:
Beispiel
SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20
AND CategoryID IN (1,2,3);
ZWISCHEN Textwerten
Die folgende SQL Anweisung wählt alle Produkte mit einem ProductName alphabetisch zwischen Carnarvon Tigers und Mozzarella di Giovanni aus:
Beispiel
SELECT * FROM Products
WHERE ProductName BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'
ORDER BY ProductName;
Die folgende SQL Anweisung wählt alle Produkte mit einem Produktnamen zwischen „Carnarvon Tigers“ und „Chef Anton’s Cajun Seasoning“ aus:
Beispiel
SELECT * FROM Products
WHERE ProductName BETWEEN "Carnarvon Tigers" AND "Chef Anton's Cajun Seasoning"
ORDER BY ProductName;
NICHT ZWISCHEN Textwerten
Die folgende SQL Anweisung wählt alle Produkte aus, deren Produktname nicht zwischen „Carnarvon Tigers“ und „Mozzarella di Giovanni“ liegt:
Beispiel
SELECT * FROM Products
WHERE ProductName NOT BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'
ORDER BY ProductName;
ZWISCHEN Terminen
Die folgende SQL Anweisung wählt alle Bestellungen mit einem Bestelldatum zwischen dem 01. Juli 1996 und dem 31. Juli 1996 aus:
Beispiel
SELECT * FROM Orders
WHERE OrderDate BETWEEN #07/01/1996# AND #07/31/1996#;
ODER:
Beispiel
SELECT * FROM Orders
WHERE OrderDate BETWEEN '1996-07-01' AND '1996-07-31';
Beispieltabelle
Nachfolgend sehen Sie eine Auswahl aus der in den Beispielen verwendeten Tabelle „Bestellungen“:
BestellNr | KundenID | MitarbeiterID | Bestelldatum | VersenderID |
---|---|---|---|---|
10248 | 90 | 5 | 7/4/1996 | 3 |
10249 | 81 | 6 | 7/5/1996 | 1 |
10250 | 34 | 4 | 7/8/1996 | 2 |
10251 | 84 | 3 | 7/9/1996 | 1 |
10252 | 76 | 4 | 7/10/1996 | 2 |