WHERE
WHERE ne garde que les lignes qui vérifient une condition, avant tout regroupement. C'est le filtre de base pour cibler un client, une période, un statut ou une plage de valeurs.
- filtrer
- condition
- opérateurs
- AND
- OR
Syntaxe
SELECT colonnesFROM tableWHERE condition1 AND (condition2 OR condition3);Exemple
SELECT name, age, class_idFROM studentsWHERE age = 12 AND (class_id = 1 OR class_id = 2)ORDER BY name;-- Jeu de données : école-- Résultat attendu :-- Alice Leroy | 12 | 1-- Bob Petit | 12 | 1-- David Roux | 12 | 2À retenir
- Opérateurs de comparaison : =, <> (ou !=), <, >, <=, >=. Les textes s'écrivent entre apostrophes simples : WHERE city = 'Paris'.
- Piège : AND est prioritaire sur OR. Sans les parenthèses de l'exemple, la condition devient (age = 12 AND class_id = 1) OR class_id = 2 et ramène aussi Clara, qui a 13 ans.
- Piège : WHERE col = NULL ne renvoie jamais rien, car une comparaison avec NULL n'est ni vraie ni fausse. Utilisez IS NULL.
- En SQLite, = est sensible à la casse sur le texte ('paris' <> 'Paris'). Pour comparer sans tenir compte de la casse : WHERE lower(city) = 'paris' ou COLLATE NOCASE.
Voir aussi
- SELECTSELECT est la question posée à la base : quelles colonnes afficher et depuis quelle table (FROM). C'est le point de départ de toute requête de lecture, du simple listing au rapport.
- IN, BETWEEN, LIKEIN teste l'appartenance à une liste, BETWEEN un intervalle bornes comprises, LIKE un motif de texte avec jokers. Ces trois opérateurs raccourcissent les conditions répétitives de WHERE.
- IS NULL / IS NOT NULLNULL signifie « valeur inconnue » et ne se compare pas avec =. IS NULL et IS NOT NULL sont les seuls tests fiables pour trouver une donnée manquante, comme une classe sans professeur.
- HAVINGHAVING filtre les groupes après le calcul des agrégats, là où WHERE filtre les lignes avant. On l'utilise pour garder, par exemple, les clients ayant passé au moins deux commandes.