clause-where
La clause WHERE spécifie une table de résultats intermédiaire qui se compose des lignes de R pour lesquelles la condition de recherche est vraie. R est le résultat de la clause FROM de la sous-requête.
La condition de recherche doit être conforme aux règles suivantes:
- Chaque nom-colonne doit identifier sans ambiguïté une colonne de R ou être une référence corrélée. Une nom-colonne est une référence corrélée si elle identifie une colonne d'une référence de table dans une sous-requête externe.
- Une fonction d'agrégation ne doit pas être spécifiée sauf si la clause WHERE est spécifiée dans une sous-requête d'une clause HAVING et que l'argument de la fonction est une référence corrélée à un groupe.
Toute sous-requête de la condition de recherche est effectivement exécutée pour chaque ligne de R et les résultats sont utilisés dans l'application de la condition de recherche à la ligne de R. Une sous-requête est en fait exécutée pour chaque ligne de R uniquement si elle inclut une référence corrélée. En fait, une sous-requête sans références corrélées peut être exécutée une seule fois, alors qu'une sous-requête avec une référence corrélée peut être exécutée une seule fois pour chaque ligne.
