Notes et traduction du tutoriel PostgreSQL Tutorial
L'opérateur BETWEEN
permet de vérifier si une valeur se trouve dans un intervalle.
VALUE BETWEEN low AND high;
Si “value” est supérieure ou égale à “low” et inférieure ou égale à “high” l'opérateur BETWEEN
retourne vrai, sinon il retourne faux.
On peut employer un équivalent à BETWEEN
en utilisant les opérateurs de comparaisons et l'opérateur AND
:
VALUE BETWEEN low AND high; -- Equivaut à VALUE >= low AND VALUE <= high
Si l'on souhaite vérifier au contraire qu'une valeur se trouve hors intervalle :
VALUE NOT BETWEEN low AND high -- Equivaut à VALUE < low OR VALUE > high
En pratique on utilise fréquemment l'opérateur BETWEEN
dans la clause WHERE des instructions SELECT, INSERT, UPDATE ou DELETE.
SELECT payment_id, amount FROM payment WHERE payment_id BETWEEN 17503 AND 17505 ORDER BY payment_id; -- hors intervalle SELECT payment_id, amount FROM payment WHERE payment_id NOT BETWEEN 17503 AND 17505 ORDER BY payment_id;
Un usage particulier de BETWEEN
concerne les dates. Notez qu'il faut utiliser le format de date ISO 8601 (YYYY-MM-DD) pour que la comparaison puisse être valide.
L'exemple ci-dessous utilise l'opérateur BETWEEN
pour sélectionner tous les paiements qui ont eu lieu entre le 15 et le 20 février 2007 :
SELECT payment_id, amount, payment_date FROM payment WHERE payment_date BETWEEN '2007-02-15' AND '2007-02-20' AND amount > 10 ORDER BY payment_date;
BETWEEN
pour vérifier qu'une valeur appartient à un intervalle ;NOT BETWEEN
au contraire pour vérifier qu'une valeur se trouve hors intervalle.