## Suchbedingung (search_condition)

Eine Suchbedingung (search_condition) verknüpft Aussagen, die wahr, falsch oder undefiniert sein können. Es können Zeilen in einer Tabelle gefunden werden, die mehrere Bedingungen erfüllen, die durch AND oder OR verknüpft werden.

### Syntax

<search_condition> ::= <boolean_term> | <search_condition> OR <boolean_term>

<boolean_term> ::= <boolean_factor> | <boolean_term> AND <boolean_factor>
<boolean_factor> ::= [NOT] <predicate> | [NOT] (<search_condition>)

Im Syntaxelement boolean_factor werden die zu verknüpfenden booleschen Werte (BOOLEAN) bzw. deren Negation (NOT) ermittelt.

### Beispiele

SQL-Tutorial, Bedingungen: Vergleich, AND, OR, BETWEEN, IN, Arithmetische Operationen, Negative Bedingungen: NOT

### Erläuterung

In einer WHERE-Klausel werden Prädikate auf eine gegebene Zeile oder auf eine Gruppe von Zeilen einer Tabelle angewendet, die mit Hilfe der GROUP-Klausel gebildet wurden (siehe dazu: Tabellenausdruck (table_expression)). Diese Resultate werden mit den angegebenen booleschen Operatoren (AND, OR, NOT) verknüpft.

Bei fehlender Klammerung ist die Priorität der Operatoren folgendermaßen festgelegt: NOT bindet stärker als AND und OR, AND bindet stärker als OR. Bei gleicher Priorität erfolgt die Auswertung von links nach rechts.

NOT

X | NOT(x)
Wahr | Falsch
Falsch | Wahr
Undefiniert | Undefiniert

x AND y

x y | Falsch | undefiniert | wahr
Falsch | Falsch | falsch | falsch
Undefiniert | Falsch | undefiniert | undefiniert
Wahr | Falsch | undefiniert | wahr

x OR y

x y | Falsch | undefiniert | wahr
Falsch | Falsch | undefiniert | wahr
Undefiniert | Undefiniert | undefiniert | wahr
Wahr | Wahr | wahr | wahr

Damit der SQL-Optimierer die effizienteste Suchstrategie bestimmen kann, ist eine bestimmte Form der Suchbedingung erforderlich. Weitere Informationen dazu finden Sie in Konzepte des Datenbanksystems, Suchbedingungen.