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.
<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.
SQL-Tutorial, Bedingungen: Vergleich, AND, OR, BETWEEN,
IN,
Arithmetische
Operationen,
Negative Bedingungen:
NOT
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.