Clause WHERE

Navigation:  Les modules métier > Les règles de production > les requêtes SQL > Clauses >

Clause WHERE

Previous pageReturn to chapter overviewNext page

 

 

WHERE prédicats

 

 

 

Utilise une clause WHERE pour limiter l'effet d'une instruction SELECT ou UPDATE à un sous-ensemble de lignes dans la table. L'utilisation d'une clause WHERE est facultative.

 

La valeur d'une clause WHERE est une ou plusieurs expressions logiques, ou prédicats, qui évaluent à TRUE ou FALSE chaque nouvelle ligne dans la table. Seules les lignes où le prédicat est évalué à TRUE sont extraites par une instruction SELECT ou modifiées par une instruction UPDATE. Par exemple, l'instruction SELECT ci-dessous, extrait toutes les lignes où la colonne ETAT contient la valeur "CA".

 

SELECT société, état

 

FROM client

 

WHERE état = "CA"

 

Les prédicats multiples doivent être séparés par un des opérateurs logiques OR ou AND. Chaque prédicat peut être nié au moyen de l'opérateur NOT. Les parenthèses peuvent être utilisées pour isoler des comparaisons logiques et regrouper des comparaisons pour générer des critères d'évaluation de lignes différents. Par exemple, l'instruction SELECT ci-dessous extrait toutes les lignes où la colonne ETAT contient une valeur "CA" ou celles dont la valeur est "HI".

 

SELECT société, état

 

FROM client

 

 

 

The SELECT statement below retrieves all rows where the SHAPE column is "round" or "square", but only if the the COLOR column also contains "red". It would not retrieve rows where, for example, the SHAPE is "round" and the COLOR "blue".

 

L'instruction SELECT ci-dessous extrait toutes les lignes où la colonne FORME est "rond" ou "carré" mais seulement pour les lignes où la colonne COULEUR est "rouge", indépendamment de la valeur dans la colonne FORME.

 

SELECT forme, couleur, coût

 

FROM objets

WHERE ((forme = "rond") OR (forme = "carré")) AND

 

 (couleur = "rouge")

 

Mais sans les parenthèses pour redéfinir la priorité des opérateurs logiques, comme dans l'instruction suivante, le résultat est très différent. Cette instruction obtient les lignes où FORME est "rond", sans tenir compte la colonne COULEUR. Elle renvoie également les lignes où la colonne FORME est "carré", mais seulement si la colonne COULEUR contient "rouge". A la différence de la versionprécédente de cette instruction, celle-ci renvoie les lignes où FORME vaut "rond" et COULEUR "bleue".

 

SELECT forme, couleur, coût

 

FROM objets

WHERE forme = "rond" OR forme = "carré" AND

 

 couleur = "rouge"

 

 

 

Les références de colonnes ne peuvent pas être passées à la clause WHERE au moyen de paramètres. Des valeurs de comparaison peuvent être passées comme paramètres.

 

Remarque        Une clause WHERE filtre les données avant l'agrégation d'une clause GROUP BY. Pour un filtrage basé sur des valeurs agrégées, utilisez une clause HAVING.

 

Applicabilité

 

SELECT (avec des colonnes non agrégées), UPDATE