WHERE

La clause WHERE a pour but de limiter le nombre de chaînes retournées à celles qui nous intéressent. La condition qui suit le mot-clé WHERE peut être aussi simple que la vérification de "AMOUNT = 3", ou peut être une expression complexe et alambiquée contenant des sous-requêtes, des prédicats, des appels de fonction, des instructions mathématiques et logiques, des variables de contexte, etc.

La condition dans une clause WHERE est souvent appelée une condition de recherche, une expression de recherche, ou simplement une recherche.

Dans DSQL et ESQL, une expression de recherche peut contenir des paramètres. Ceci est utile si la requête doit être répétée plusieurs fois avec des valeurs différentes des paramètres d'entrée. Dans la chaîne de requête SQL envoyée au serveur, les points d'interrogation sont utilisés comme caractères de remplacement pour les paramètres. Ils sont appelés paramètres positionnels car ils ne peuvent rien dire d'autre que la position dans la chaîne. Les bibliothèques d'accès prennent souvent en charge des paramètres nommés tels que :id, :amount, :a etc. C'est plus convivial, la bibliothèque se charge de traduire les paramètres nommés en paramètres de position avant de transmettre la requête au serveur.

Une condition de recherche peut également contenir des noms de variables locales (PSQL) ou hôtes (ESQL), précédés de deux points.

Syntaxe
SELECT ...
  FROM ...
  [...]
  WHERE <search-condition>
  [...]
Table 1. Paramètres de la clause WHERE
ParamètreDescription

search-condition

Une expression logique retournant TRUE, FALSE et éventuellement UNKNOWN (NULL).

Seules les chaînes pour lesquelles la condition de recherche est vraie seront incluses dans le jeu de résultats. Faites attention aux valeurs NULL qui peuvent en résulter : si vous niez une expression donnant NULL avec NOT, le résultat d'une telle expression est toujours NULL et la chaîne ne passera pas. Ceci est démontré dans un des exemples ci-dessous.