Anfang des InhaltsbereichsMengenvergleichsprädikat (quantified_predicate) Dokument im Navigationsbaum lokalisieren

Durch die Angabe eines Mengenvergleichs prä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>

subquery, expression_list

Für den Vergleich von Werten stehen folgende Vergleichsoperatoren zur Verfügung:
<, >, <>, !=, =, <=, >= (
comp_op)

Für den Vergleich von Wertelisten stehen nur die Vergleichsoperatoren = und <> zur Verfügung ( equal_or_not).

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

Erläuterung

Die Subquery ( subquery ) muß eine Ergebnistabelle (siehe Ergebnistabellenname) 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 ) muß so viele Werte enthalten, wie in der Werteliste vor dem Vergleichsoperator equal_or_not angegeben sind.

In der folgenden Aufstellung bedeutet ‘------‘, daß 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

 

Beispiel

Beispieltabelle hotel

Liste von Hotels, die dieselben Namen haben wie irgendwelche Orte in der Basistabelle.

SELECT name, ort FROM hotel
WHERE name = ANY (SELECT ort FROM hotel)

Die Subquery SELECT ort FROM hotel ermittelt die Ortsnamenliste, mit der die Hotelnamen verglichen werden.

Ende des Inhaltsbereichs