Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Quantifizierter Vergleich (Vergleich mit den Zeilen einer Tabelle)

Der Wert einer Zeile wird mit den Zeilen einer Tabelle verglichen. Entweder wird bestimmt, ob der Vergleich für alle Zeilen der Tabelle zutrifft, oder ob er wenigstens für eine Zeile zutrifft.


zeile vergleichs_op { ALL | SOME | ANY } unterabfrage_1

zeile ::= { ( ausdruck ,...) | ausdruck | unterabfrage_2 }

vergleichs_op ::= { = | < | > | <= | >=| <> }


zeile

Linker Operand für den Vergleich.

Jeder ausdruck in zeile muss einfach sein. Die Zeile besteht aus den Werten von ausdruck in der angegebenen Reihenfolge. Ein einzelner ausdruck liefert also eine Zeile mit einer Spalte.

unterabfrage_2 muss eine Tabelle ohne multiple Spalten liefern, die höchstens eine Zeile hat. Diese Zeile ist der linke Vergleichsoperand. Ist die gelieferte Tabelle leer, so besteht der Vergleichsoperand aus einer Zeile, deren Spalten alle den Wert NULL haben.

vergleichs_op

Vergleichsoperator:

=

<

>

<=

>=

<>

Vergleich auf gleich

Vergleich auf kleiner

Vergleich auf größer

Vergleich auf kleiner oder gleich

Vergleich auf größer oder gleich

Vergleich auf ungleich


unterabfrage_1

Die Anzahl der Spalten muss gleich der Anzahl der Spalten von zeile sein, und korrespondierende Spalten von zeile und unterabfrage_1 müssen verträgliche Datentypen haben (siehe Abschnitt „Verträglichkeit von Datentypen").


Ergebnis


ALL

Wahr, wenn der rechte Operand eine leere Tabelle ist, oder wenn der Vergleich des linken Operanden zeile mit allen Zeilen des rechten Operanden wahr ergibt.

Falsch, wenn der Vergleich des linken Operanden zeile mit mindestens einer Zeile des rechten Operanden falsch ergibt.

Unbestimmt, sonst.

SOME / ANY

Wahr, wenn der Vergleich des linken Operanden zeile mit mindestens einer Zeile des rechten Operanden wahr ergibt.

Falsch, wenn der rechte Operand eine leere Tabelle ist, oder wenn der Vergleich des linken Operanden zeile mit allen Zeilen des rechten Operanden falsch ergibt.

Unbestimmt, sonst.

Alle Vergleiche erfolgen nach den Vergleichsregeln in Abschnitt „Vergleichsregeln" auf "Vergleichsregeln".


Beispiele

Folgender Vergleich ist wahr, wenn das aktuelle Datum nach allen Terminen in der Ergebnisspalte liegt und all diese Termine ungleich NULL sind. Er ist falsch, wenn das aktuelle Datum früher als ein Termin oder gleichzeitig mit einem Termin ungleich NULL der Ergebnisspalte ist. In allen anderen Fällen ist das Ergebnis unbestimmt.

CURRENT_DATE > ALL (SELECT fertigsoll FROM auftrag)


Aus der Tabelle VERWENDUNG die Artikel heraussuchen, die einen Bestandteil enthalten, dessen Anzahl höher ist als die Anzahl aller Bestandteile des Artikels mit der Artikelnummer

SELECT artnr FROM verwendung WHERE anzahl > ALL (SELECT anzahl FROM verwendung WHERE artnr = 1)