Bei Microsoft anmelden
Melden Sie sich an, oder erstellen Sie ein Konto.
Hallo,
Wählen Sie ein anderes Konto aus.
Sie haben mehrere Konten.
Wählen Sie das Konto aus, mit dem Sie sich anmelden möchten.

Eine Unterabfrage ist eine SELECT-Anweisung, die in einem SELECT, SELECT... geschachtelt ist. INTO, INSERT... INTO-, DELETE- oder UPDATE-Anweisung oder innerhalb einer anderen Unterabfrage.

Syntax

Sie können drei Syntaxformen verwenden, um eine Unterabfrage zu erstellen:

Vergleich [ANY | ALLE | SOME] (sqlstatement)

Ausdruck [NOT] IN (sqlstatement)

[NICHT] EXISTS (sqlstatement)

Eine Unterabfrage umfasst die folgenden Teile:

Teil

Beschreibung

Vergleich

Ein Ausdruck und ein Vergleichsoperator, der den Ausdruck mit den Ergebnissen der Unterabfrage vergleicht.

Ausdruck

Ein Ausdruck, nach dem das Resultset der Unterabfrage durchsucht wird.

SQL-Anweisung

Eine SELECT-Anweisung mit dem gleichen Format und den gleichen Regeln wie jede andere SELECT-Anweisung. Sie muss in Klammern eingeschlossen werden.


Anmerkungen

Sie können eine Unterabfrage anstelle eines Ausdrucks in der Feldliste einer SELECT-Anweisung oder in einer WHERE- oder HAVING-Klausel verwenden. In einer Unterabfrage verwenden Sie eine SELECT-Anweisung, um einen Satz von einem oder mehreren spezifischen Werten bereitzustellen, die im WHERE- oder HAVING-Klauselausdruck ausgewertet werden sollen.

Verwenden Sie das Prädikat ANY oder SOME, die synonym sind, um Datensätze in der Standard Abfrage abzurufen, die den Vergleich mit allen in der Unterabfrage abgerufenen Datensätzen erfüllen. Im folgenden Beispiel werden alle Produkte zurückgegeben, deren Preis pro Einheit höher ist als der eines Produkts, das mit einem Rabatt von 25 Prozent oder mehr verkauft wird:

SELECT * FROM Products WHERE UnitPrice > ANY (SELECT UnitPrice FROM OrderDetails WHERE Discount >= .25);

Verwenden Sie das All-Prädikat, um nur die Datensätze in der Standard Abfrage abzurufen, die den Vergleich mit allen Datensätzen erfüllen, die in der Unterabfrage abgerufen wurden. Wenn Sie im vorherigen Beispiel ANY in ALL geändert haben, gibt die Abfrage nur die Produkte zurück, deren Einzelpreis höher als der Preis aller Produkte ist, die mit einem Rabatt von 25 Prozent oder mehr verkauft werden. Das ist viel restriktiver.

Verwenden Sie das IN-Prädikat, um nur die Datensätze in der Standard Abfrage abzurufen, für die ein Datensatz in der Unterabfrage einen gleichen Wert enthält. Im folgenden Beispiel werden alle Produkte mit einem Rabatt von 25 Prozent oder mehr zurückgegeben:

SELECT * FROM Products WHERE ProductID IN (SELECT ProductID FROM OrderDetails WHERE Discount >= .25);

Umgekehrt können Sie NOT IN verwenden, um nur die Datensätze in der Standard Abfrage abzurufen, für die kein Datensatz in der Unterabfrage einen gleichen Wert enthält.

Verwenden Sie das EXISTS-Prädikat (mit dem optionalen reservierten Wort NOT) in TRUE/FALSE-Vergleichen, um zu bestimmen, ob die Unterabfrage Datensätze zurückgibt.

Sie können auch Tabellennamenaliase in einer Unterabfrage verwenden, um auf Tabellen zu verweisen, die in einer FROM-Klausel außerhalb der Unterabfrage aufgeführt sind. Im folgenden Beispiel werden die Namen von Mitarbeitern zurückgegeben, deren Gehälter dem Durchschnittsgehalt aller Mitarbeiter mit der gleichen Position entsprechen oder höher sind. Der Tabelle Employees wird der Alias "T1" zugeordnet:

SELECT LastName, FirstName, Title, Salary FROM Employees AS T1 WHERE Salary >= (SELECT Avg(Salary) FROM Employees WHERE T1.Title = Employees.Title) Order by Title;

Im vorherigen Beispiel ist die AS- Reserviertes Wort optional.

Einige Unterabfragen sind in Kreuztabellenabfragen zulässig, insbesondere als Prädikate (die in der WHERE-Klausel). Unterabfragen als Ausgabe (die in der SELECT-Liste) sind in Kreuztabellenabfragen nicht zulässig.



Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Sprachqualität?
Was hat Ihre Erfahrung beeinflusst?
Wenn Sie auf "Absenden" klicken, wird Ihr Feedback zur Verbesserung von Produkten und Diensten von Microsoft verwendet. Ihr IT-Administrator kann diese Daten sammeln. Datenschutzbestimmungen.

Vielen Dank für Ihr Feedback!

×