Anfang des Inhaltsbereichs

Mengenvergleichsprädikat (quantified_predicate) Dokument im Navigationsbaum lokalisieren

Durch die Angabe eines Mengenvergleichsprädikats (quantified_predicate) wird ein Vergleich eines Wertes bzw. einer Werteliste mit einer Menge von Werten bzw. Wertelisten durchgeführt.

Syntax

<quantified_predicate> ::=
  <expression> <comp_op> <quantifier> <expression_list>
| <expression> <comp_op> <quantifier> <subquery>
| <expression_list> <equal_or_not> <quantifier> (<expression_list>,...)
| <expression_list> <equal_or_not> <quantifier> <subquery>

Für den Vergleich von Werten stehen folgende Vergleichsoperatoren zur Verfügung:
<comp_op> ::= < | > | <> | != | = | <= | >=
|
~= | ~< | ~> (für Computer mit ASCII-Code)

Für den Vergleich von Wertelisten stehen nur die folgenden Vergleichsoperatoren zur Verfügung:

<equal_or_not> ::= <> |=
|
~= (für Computer mit ASCII-Code)

Zur Qualifizierung des Mengenvergleichs stehen ALL bzw. SOME oder ANY zur Verfügung.

<quantifier> ::= ALL | SOME | ANY

Beispiele

SQL-Tutorial, StrukturlinkSubquery: Innere Abfragen

Erläuterung

Die Subquery subquery muss eine Ergebnistabelle liefern, die so viele Spalten enthält wie Werte durch den Ausdruck (expression bzw. expression_list) auf der linken Seite des Operators erzeugt sind.

Jede auf der rechten Seite des Vergleichsoperators equal_or_not angegebene Werteliste expression_list muss so viele Werte enthalten, wie in der Werteliste vor dem Vergleichsoperator equal_or_not angegeben sind.

·        Sei x das Ergebnis des ersten Wertes expression und S das Ergebnis der Subquery oder der Folge von Werten. S ist eine Menge von Werten s. Der Wert x und die Werte in S müssen miteinander vergleichbar sein.

·        Wenn auf der linken Seite der Vergleichsopertors equal_or_not eine Werteliste expression_list angegeben ist, dann sei x die Werteliste, die sich aus den Ergebnissen der Werte x1, x2, ..., xn dieser Werteliste zusammensetzt. S sei das Ergebnis der Subquery, die sich aus einer Menge von Wertelisten s zusammensetzt. oder eine Folge von Wertelisten s. Eine Werteliste s setzt sich aus den Ergebnissen der Werte s1, s2, ..., sn zusammen. Ein Wert xm muss mit allen Werten sm vergleichbar sein.
x=s ist wahr, wenn xm=sm, m=1,...,n
x<>s ist wahr, wenn es mindestens ein m gibt, für das gilt xm<>sm.
x
<equal_or_not> s ist undefiniert, wenn es kein m gibt, für das xm <equal_or_not> sm falsch ist und es mindestens ein m gibt, für das xm <equal_or_not> sm undefiniert ist.
Wenn ein xm oder ein ym NULL-Werte sind, oder wenn das Ergebnis der Subquery leer ist, dann ist x
<equal_or_not> y undefiniert.

In der folgenden Aufstellung bedeutet ‘------‘, dass keine Aussage getroffen werden kann, wenn nur das Ergebnis des Vergleichs mit einem s bekannt ist.

x <compare> <quantifier> S, wobei compare ::= comp_op | equal_or_not

 

quantifier ::= ALL

quantifier ::= ANY | SOME

S ist leer

Wahr

falsch

x <compare> S ist wahr für mindestens ein s aus S

------

wahr

x <compare> S ist wahr für alle s aus S

Wahr

wahr

x <compare> S ist für keinen Wert s aus S falsch und ist wenigstens für einen Wert s undefiniert

undefiniert

 

S enthält NULL-Werte und x <compare> S ist wahr für alle anderen s

undefiniert

wahr

x <compare> S ist für wenigstens einen Wert s aus S falsch

Falsch

------

x <compare> S ist falsch für alle s aus S

Falsch

falsch

x <compare> S ist für keinen Wert aus aus S wahr und für wenigstens einen Wert s undefiniert

 

undefiniert

S enthält NULL-Werte und x <compare> S ist falsch für alle anderen s

falsch

undefiniert

Siehe auch:

Vergleichsprädikat (comparison_predicate)

Ende des Inhaltsbereichs