Zusammenfassung: In diesem Tutorial erfahren Sie, wie Sie den SQL Server EXISTS
Operator in der Bedingung verwenden, um die Existenz von Zeilen in einer Unterabfrage zu testen.
SQL Server EXISTIERT Operatorübersicht
Der Operator EXISTS
ist ein logischer Operator, mit dem Sie überprüfen können, ob eine Unterabfrage eine Zeile zurückgibt. Der Operator EXISTS
gibt TRUE
zurück, wenn die Unterabfrage eine oder mehrere Zeilen zurückgibt.,
Im Folgenden wird die Syntax des SQL Server-Operators EXISTS
angezeigt:
Code language: SQL (Structured Query Language) (sql)
In dieser Syntax ist die Unterabfrage nur eine SELECT
– Anweisung. Sobald die Unterabfrage Zeilen zurückgibt, gibt der Operator EXISTS
TRUE
zurück und beendet die Verarbeitung sofort.
Beachten Sie, dass, obwohl die Unterabfrage einen NULL
Wert zurückgibt, der EXISTS
Operator immer noch ausgewertet wird TRUE
.,
SQL Server EXISTS operator examples
nehmen wir einige Beispiele, um zu verstehen, wie EXISTS
– operator funktioniert.
A) VORHANDEN ist mit einer Unterabfrage gibt NULL zurück, Beispiel
Sehen Sie sich die folgenden customers
Tabelle aus der Beispiel-Datenbank.,
Das folgende Beispiel gibt alle Zeilen aus der customers
Tabelle zurück:
In diesem Beispiel gab die Unterabfrage eine Ergebnismenge zurück, die NULL
enthält, wodurch der Operator EXISTS
zu TRUE
ausgewertet wird. Daher gibt die gesamte Abfrage alle Zeilen aus der Tabelle customers
zurück.,
B) Verwenden von EXISTS mit einem korrelierten Unterabfragebeispiel
Betrachten Sie die folgenden customers
und orders
Tabellen:
In diesem Beispiel hatten wir eine korrelierte Unterabfrage, die Kunden zurückgibt, die mehr als zwei Bestellungen aufgeben.,
Wenn die Anzahl der vom Kunden erteilten Aufträge kleiner oder gleich zwei ist, gibt die Unterabfrage eine leere Ergebnismenge zurück, die dazu führt, dass der Operator EXISTS
ausgewertet wird FALSE
.
Basierend auf dem Ergebnis des Operators EXISTS
wird der Kunde in die Ergebnismenge aufgenommen.
C) EXISTIERT vs., IN Beispiel
verwendet die folgende Anweisung den Operator IN
, um die Bestellungen der Kunden aus San Jose zu finden:
Die folgende Anweisung verwendet den Operator EXISTS
, der das gleiche Ergebnis zurückgibt:
EXISTIERT vs. JOIN
Der Operator EXISTS
gibt TRUE
oder FALSE
zurück, während die Klausel JOIN
Zeilen aus einer anderen Tabelle zurückgibt.,
Sie verwenden den Operator EXISTS
, um zu testen, ob eine Unterabfrage eine Zeile und einen Kurzschluss zurückgibt, sobald dies der Fall ist. Andererseits verwenden Sie JOIN
, um die Ergebnismenge zu erweitern, indem Sie sie mit den Spalten aus verwandten Tabellen kombinieren.
In der Praxis verwenden Sie die EXISTS
wenn Sie nur die Existenz von Zeilen aus verwandten Tabellen überprüfen müssen, ohne Daten von ihnen zurückzugeben.
In diesem Tutorial haben Sie gelernt, wie Sie mit dem Operator SQL Server EXISTS
testen, ob eine Unterabfrage Zeilen zurückgibt.