## IN-Prädikat (in_predicate)

Das IN-Prädikat (in_predicate) ist ein Prädikat, das 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>,...)

### Beispiele

SQL-Tutorial, Bedingungen: Vergleich, AND, OR, BETWEEN, IN, Negative Bedingungen: NOT, Subquery: Innere Abfragen

### Erläuterung

Die Subquery (subquery) muss 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 muss so viele Werte enthalten, wie in der Werteliste auf der linken Seite des Operators IN angegeben sind.

· x [NOT] IN S, wobei x <expression> und S <subquery> oder <expression_list>
Der Wert x und die Werte in S müssen miteinander vergleichbar sein.

· x [NOT] IN S, wobei x <expression_list> mit den Werten x1, x2, ..., xn und S <subquery>(Menge von Wertelisten s) oder (<expression_list>,...) (Folge von Wertelisten s) mit den Wertelisten s: s1, s2, ..., sn
Ein Wert xm muss mit allen Werten sm vergleichbar sein.
x=s ist wahr, wenn xm=sm, m=1,...,n
x=s ist falsch, wenn es mindestens ein m gibt, für das xm=sm falsch ist
x=s ist undefiniert, wenn es kein m gibt, für das xm=sm falsch ist, und es mindestens ein m gibt, für das xm=sm undefiniert ist.

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)