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

 

Unterabfrage-Vergleichstest

Der Unterabfrage-Vergleichstest (=, <>, <. <=, >, >=) ist eine modifizierte Version des einfachen Vergleichstests. Der einzige Unterschied zwischen den beiden besteht darin, dass im Ersteren der Ausdruck, der dem Operator folgt, eine Unterabfrage ist. Dieser Test wird verwendet, um einen Wert aus einer Zeile in der Hauptabfrage mit einem einzelnen Wert zu vergleichen, der von der Unterabfrage erstellt wird.

Beispiel

Diese Abfrage enthält ein Beispiel für einen Unterabfrage-Vergleichstest:

SELECT Name, Description, Quantity
FROM Products
WHERE Quantity <  2 * (
   SELECT AVG( Quantity )
   FROM SalesOrderItems );
Name Description Quantity
Tee Shirt Tank Top 28
Baseball Cap Wool cap 12
Visor Cloth Visor 36
Visor Plastic Visor 28
... ... ...

Folgende Unterabfrage ruft einen einzelnen Wert (die Durchschnittsmenge von Artikeln jedes Typs pro Kundenbestellung) aus der Tabelle "SalesOrderItems" ab.

SELECT AVG( Quantity )
FROM SalesOrderItems;

Die Hauptabfrage vergleicht dann den Lagerbestand jedes Artikels mit diesem Wert.

Eine Unterabfrage in einem Vergleichstest gibt genau einen Wert zurück

Eine Unterabfrage in einem Vergleichstest muss genau einen Wert zurückgeben. Sehen Sie sich die folgende Abfrage an, deren Unterabfrage zwei Spalten aus der Tabelle "SalesOrderItems" filtert:

SELECT Name, Description, Quantity
FROM Products
WHERE Quantity <  2 * (
   SELECT AVG( Quantity ), MAX( Quantity )
   FROM SalesOrderItems);

Der Fehler Unterabfrage erlaubt nur ein Element der Auswahlliste wird zurückgegeben.