Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Daten abfragen und ändern » Unterabfragen verwenden » Unterabfragen testen

 

Unterabfragen und der IN-Test

Sie können den Test der Zugehörigkeit zur Wertegruppe einer Unterabfrage benutzen, um einen Wert aus der Hauptabfrage mit mehr als einem Wert für die Unterabfrage zu vergleichen.

Der Test der Zugehörigkeit zur Wertegruppe einer Unterabfrage vergleicht einen einzelnen Datenwert für jede Zeile in der Hauptabfrage mit einer einzelnen Spalte von Datenwerten, die von der Unterabfrage produziert werden. Wenn der Datenwert der Hauptabfrage zu einem der Datenwerte in der Spalte passt, ergibt die Unterabfrage TRUE.

Beispiel

Es werden die Namen der Mitarbeiter gesucht, die die Abteilungen "Shipping" oder "Finance" leiten.

SELECT GivenName, Surname
FROM Employees
WHERE EmployeeID IN (
   SELECT DepartmentHeadID
   FROM Departments
   WHERE ( DepartmentName='Finance' OR 
          DepartmentName = 'Shipping' ) );
GivenName Surname
Mary Anne Shea
Jose Martinez

Die Unterabfrage in diesem Beispiel holt aus der Tabelle "Departments" die ID-Nummern, die den Leitern der Abteilungen "Shipping" und "Finance" entsprechen. Die Hauptabfrage gibt dann die Namen der Mitarbeiter zurück, deren ID-Nummern zu einem der beiden von der Unterabfrage gefundenen Namen passen.

SELECT DepartmentHeadID
FROM Departments
WHERE ( DepartmentName='Finance' OR 
       DepartmentName = 'Shipping' );
Der Test der Zugehörigkeit zu einer Gruppe ist gleichwertig zum ANY-Test.

Der Test der Zugehörigkeit zu einer Gruppe ist gleichwertig zum ANY-Test. Die folgende Abfrage ist gleichwertig zu der Abfrage aus dem vorherigen Beispiel.

SELECT GivenName, Surname
FROM Employees
WHERE EmployeeID = ANY (
   SELECT DepartmentHeadID
   FROM Departments
   WHERE ( DepartmentName='Finance' OR 
          DepartmentName = 'Shipping' ) );
Negativinterpretation des Tests der Zugehörigkeit zu einer Gruppe

Der Test der Zugehörigkeit zur Wertegruppe einer Unterabfrage kann auch benutzt werden, um jene Zeilen abzufragen, deren Spaltenwerte nicht denen entsprechen, die von einer Unterabfrage ausgewertet wurden. Um einen Test der Zugehörigkeit zu einer Gruppe negativ zu interpretieren, setzen Sie das Wort NOT vor das Schlüsselwort IN.

Beispiel

Die Unterabfrage in dieser Abfrage gibt Vornamen und Nachnamen der Mitarbeiter zurück, die nicht Abteilungsleiter von "Finance" oder "Shipping" sind.

SELECT GivenName, Surname
FROM Employees
WHERE EmployeeID NOT IN (
   SELECT DepartmentHeadID
   FROM Departments
   WHERE ( DepartmentName='Finance' OR 
          DepartmentName = 'Shipping' ) );