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 TRUEausgewertet 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:

Das folgende Beispiel findet alle Kunden, die mehr als zwei Bestellungen aufgegeben haben:

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.