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.
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 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.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |