SQL -Tutorial

SQL-HOME SQL-Einführung SQL-Syntax SQL-Auswahl SQL Wählen Sie Eindeutig aus SQL-Wo SQL Und, Oder, Nicht SQL-Reihenfolge nach SQL einfügen in SQL-Nullwerte SQL-Update SQL-Löschen SQL-Auswahl oben SQL-Min und -Max SQL-Anzahl, Durchschnitt, Summe SQL-ähnlich SQL-Platzhalter SQL-Eingang SQL zwischen SQL-Aliase SQL-Joins SQL Inner Join SQL-Left-Join SQL-Rechtsverknüpfung Vollständiger SQL-Join SQL-Self-Join SQL-Union SQL-Gruppierung nach SQL-Haben SQL existiert SQL Beliebig, Alle SQL-Auswahl in SQL-Insert in Select SQL-Fall SQL-Null-Funktionen Gespeicherte SQL-Prozeduren SQL-Kommentare SQL-Operatoren

SQL- Datenbank

SQL DB erstellen SQL-Drop-DB SQL-Sicherungsdatenbank SQL-Tabelle erstellen SQL-Drop-Tabelle SQL Alter-Tabelle SQL-Einschränkungen SQL nicht null SQL-eindeutig SQL-Primärschlüssel SQL-Fremdschlüssel SQL-Check SQL-Standard SQL-Index Automatisches SQL-Inkrement SQL-Daten SQL-Ansichten SQL-Injektion SQL-Hosting SQL-Datentypen

SQL- Referenzen

SQL-Schlüsselwörter MySQL-Funktionen SQL Server-Funktionen MS Access-Funktionen SQL-Schnellref

SQL- Beispiele

SQL-Beispiele SQL-Quiz SQL-Übungen SQL-Zertifikat

SQL ANY- und ALL-Operatoren


Die SQL-Operatoren ANY und ALL

Mit den Operatoren ANYund ALLkönnen Sie einen Vergleich zwischen einem einzelnen Spaltenwert und einer Reihe anderer Werte durchführen.


Der SQL ANY-Operator

Der ANYBetreiber:

  • gibt als Ergebnis einen booleschen Wert zurück
  • gibt TRUE zurück, wenn EINER der Unterabfragewerte die Bedingung erfüllt

ANY bedeutet, dass die Bedingung wahr ist, wenn die Operation für einen der Werte im Bereich wahr ist.

JEDE Syntax

SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY
  (SELECT column_name
 
FROM table_name
 
WHERE condition);

Hinweis: Der Operator muss ein Standard-Vergleichsoperator sein (=, <>, !=, >, >=, < oder <=).


Der SQL ALL-Operator

Der ALLBetreiber:

  • gibt als Ergebnis einen booleschen Wert zurück
  • gibt TRUE zurück, wenn ALLE Unterabfragewerte die Bedingung erfüllen
  • wird mit SELECT, WHEREund HAVING-Anweisungen verwendet

ALLbedeutet, dass die Bedingung nur wahr ist, wenn die Operation für alle Werte im Bereich wahr ist. 

ALL-Syntax Mit SELECT

SELECT ALL column_name(s)
FROM table_name
WHERE condition;

ALL Syntax Mit WHERE oder HAVING

SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL
  (SELECT column_name
 
FROM table_name
 
WHERE condition);

Hinweis: Der Operator muss ein Standard-Vergleichsoperator sein (=, <>, !=, >, >=, < oder <=).


Demo-Datenbank

Nachfolgend finden Sie eine Auswahl aus der Tabelle "Produkte" in der Northwind-Beispieldatenbank:

ProductID ProductName SupplierID CategoryID Unit Price
1 Chais 1 1 10 boxes x 20 bags 18
2 Chang 1 1 24 - 12 oz bottles 19
3 Aniseed Syrup 1 2 12 - 550 ml bottles 10
4 Chef Anton's Cajun Seasoning 2 2 48 - 6 oz jars 22
5 Chef Anton's Gumbo Mix 2 2 36 boxes 21.35
6 Grandma's Boysenberry Spread 3 2 12 - 8 oz jars 25
7 Uncle Bob's Organic Dried Pears 3 7 12 - 1 lb pkgs. 30
8 Northwoods Cranberry Sauce 3 2 12 - 12 oz jars 40
9 Mishi Kobe Niku 4 6 18 - 500 g pkgs. 97

Und eine Auswahl aus der Tabelle „OrderDetails“ :

OrderDetailID OrderID ProductID Quantity
1 10248 11 12
2 10248 42 10
3 10248 72 5
4 10249 14 9
5 10249 51 40
6 10250 41 10
7 10250 51 35
8 10250 65 15
9 10251 22 6
10 10251 57 15


SQL ANY-Beispiele

Die folgende SQL-Anweisung listet den Produktnamen auf, wenn in der OrderDetails-Tabelle BELIEBIGE Datensätze gefunden werden, deren Menge gleich 10 ist (dies gibt TRUE zurück, da die Spalte Menge einige Werte von 10 hat):

Beispiel

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10);

Die folgende SQL-Anweisung listet den Produktnamen auf, wenn sie einen Datensatz in der Tabelle „OrderDetails“ mit einer Menge größer als 99 findet (dies gibt TRUE zurück, da die Spalte „Menge“ einige Werte größer als 99 enthält):

Beispiel

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 99);

Die folgende SQL-Anweisung listet den Produktnamen auf, wenn sie einen Datensatz in der OrderDetails-Tabelle mit einer Menge größer als 1000 findet (dies gibt FALSE zurück, da die Spalte Menge keine Werte größer als 1000 enthält):

Beispiel

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 1000);

SQL ALL-Beispiele

Die folgende SQL-Anweisung listet ALLE Produktnamen auf:

Beispiel

SELECT ALL ProductName
FROM Products
WHERE TRUE;

Die folgende SQL-Anweisung listet ProductName auf, wenn ALLE Datensätze in der OrderDetails-Tabelle eine Menge gleich 10 haben. Dies gibt natürlich FALSE zurück, weil die Spalte Menge viele verschiedene Werte hat (nicht nur den Wert 10):

Beispiel

SELECT ProductName
FROM Products
WHERE ProductID = ALL
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10);