In

0

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:

KundenIDKundennameKontaktnameAddressStadtPostleitzahlLand
1
Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4
Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

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:

ProduktIDProduktnameLieferantenIDKategorieIDEinheitPreis
1Chais1110 Boxen x 20 Taschen18
2Chang1124 – 12 oz Flaschen19
3Aniseed Syrup1212 – 550 ml Flaschen10
4Chef Anton’s Cajun Seasoning2248 – 6 oz Gläser22
5Chef Anton’s Gumbo Mix2236 Boxen21.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“:

BestellNrKundenIDMitarbeiterIDBestelldatumVersenderID
102489057/4/19963
102498167/5/19961
102503447/8/19962
102518437/9/19961
102527647/10/19962
Nach oben scrollen