IN-Prädikat (in_predicate)
Das IN-
Prädikat ( in_predicate ) prüft, ob ein Wert bzw. eine Werteliste in einer vorgegebenen Wertemenge bzw. Menge von Wertelisten enthalten ist.Syntax
<in_predicate> ::=
<expression> [NOT] IN <subquery>
| <expression> [NOT] IN <expression_list>
| <expression_list> [NOT] IN <subquery>
| <expression_list> [NOT] IN (<expression_list>,...)
Erläuterung
Die Subquery (
subquery ) muß eine Ergebnistabelle (siehe Ergebnistabellenname) liefern, die so viele Spalten enthält wie Werte durch den Ausdruck ( expression ) auf der linken Seite des Operators IN angegeben sind.Jede auf der rechten Seite des Operators IN angegebene Werteliste muß so viele Werte enthalten, wie in der Werteliste auf der linken Seite des Operators IN angegeben sind.
In der folgenden Aufstellung bedeutet ‘------‘, daß keine Aussage getroffen werden kann, wenn nur das Ergebnis des Vergleichs mit einem s bekannt ist.
|
Ergebnis der Funktion x IN S | |
x=s ist wahr für mindestens ein s |
wahr |
x=s ist wahr für alle s |
wahr |
S enthält NULL-Werte und x=s ist wahr für die übrigen s |
wahr |
S ist leer |
falsch |
x=s ist falsch für mindestens ein s |
------ |
x=s ist falsch für alle s |
falsch |
S enthält NULL-Werte und x=s ist falsch für die übrigen s |
undefiniert |
x=s ist für kein s wahr und ist für wenigstens einen Wert s undefiniert |
undefiniert |
x NOT IN S
hat das gleiche Ergebnis wie NOT(x IN S)
Beispieltabelle
kundeAuswahl aller Kunden, die natürliche Personen (keine Firmen) sind:
SELECT anrede, vorname, nachname, ort FROM kunde
WHERE anrede IN ('Herr','Frau')
ANREDE |
VORNAME |
NACHNAME |
ORT |
Frau |
Sabine |
Barth |
München |
Herr |
Heinz |
Starke |
Berlin |
Frau |
Ute |
Steger |
Berlin |
Herr |
Peter |
Braun |
Düsseldorf |
Herr |
Hans |
Schwarz |
Stuttgart |
Herr |
Max |
Maler |
München |
Herr |
Klaus |
Wenzel |
Hamburg |
Herr |
Paul |
Muschel |
Berlin |
Frau |
Else |
Rietz |
Berlin |
Herr |
Otto |
Schulze |
Berlin |
Herr |
Artur |
Tisch |
Berlin |
Herr |
Thomas |
Meyer |
München |
Frau |
Ina |
Braun |
Düsseldorf |