Die WHERE-Klausel (
where_clause) gibt die Bedingungen für das Bilden einer Ergebnistabelle (siehe Ergebnistabellenname) an.Syntax
<where_clause> ::= WHERE <search_condition>
search_conditionErläuterung
Die Suchbedingung (
search_condition) wird auf jede Zeile der durch die FROM-Klausel gebildeten Zwischenergebnistabelle angewendet. Das Ergebnis der WHERE-Klausel ist eine Tabelle, die nur noch diejenigen Zeilen der Ergebnistabelle enthält, für die die Suchbedingung wahr ist.Die Suchbedingung darf nur Spaltenspezifikationen enthalten, auf die der Benutzer das SELECT-Privileg hat.
Jede direkt in der Suchbedingung enthaltene
Spaltenspezifikation muß eindeutig eine Spalte aus den in der FROM-Klausel des Tabellenausdrucks angegebenen Tabellen bezeichnen. Gegebenenfalls ist der Spaltenname durch den Tabellenbezeichner zu qualifizieren. Wenn in der FROM-Klausel für Tabellennamen Referenznamen (reference_name) definiert wurden, sind die Referenznamen als Tabellenbezeichner in der Suchbedingung zu verwenden.Ein in der Suchbedingung enthaltener
Ausdruck (expression) darf bis auf folgende Ausnahme keine Set-Funktion (set_function_spec) enthalten:SELECT ... FROM uppertab,…
HAVING ... (SELECT ...
WHERE MIN(uppertab, ...)...
)
Die SELECT-Anweisung in der angegebenen Form ist erlaubt.
In der in einer
HAVING-Klausel verwendeten Subquery ist es möglich, WHERE-Klauseln zu verwenden, die Set-Funktionen für die Spalten der in der SELECT … HAVING-Anweisung angegebenen Tabelle enthalten (Correlated Subquery).Im Fall einer Correlated Subquery kann eine Spaltenspezifikation eine Spalte einer Tabelle bezeichnen, die in einer FROM-Klausel eines anderen Tabellenausdrucks der
QUERY-Spezifikation angegeben wurde.Jede
Subquery in der Suchbedingung wird in der Regel nur einmal ausgewertet. Im Fall einer Correlated Subquery wird die Subquery für jede Zeile der durch die FROM-Klausel gebildeten Ergebnistabelle ausgeführt.