Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
BETWEENétat de la gamme
Une condition BETWEEN
teste les expressions pour l’inclusion dans une plage de valeurs, à l’aide des mots-clés BETWEEN
et AND
.
Syntaxe
expression [ NOT ] BETWEEN expression AND expression
Les expressions peuvent être de type de données numeric, character ou datetime, mais elles doivent être compatibles. La plage est inclusive.
Exemples
Le premier exemple comptabilise le nombre de transactions ayant enregistré des ventes de 2, 3 ou 4 billets :
select count(*) from sales where qtysold between 2 and 4; count -------- 104021 (1 row)
La condition de la plage comprend les valeurs de début et de fin.
select min(dateid), max(dateid) from sales where dateid between 1900 and 1910; min | max -----+----- 1900 | 1910
La première expression d’une condition de plage doit être la valeur inférieure et la deuxième expression la valeur supérieure. L’exemple suivant retourne toujours zéro ligne en raison des valeurs des expressions :
select count(*) from sales where qtysold between 4 and 2; count ------- 0 (1 row)
Cependant, l'application du NOT modificateur inversera la logique et produira un décompte de toutes les lignes :
select count(*) from sales where qtysold not between 4 and 2; count -------- 172456 (1 row)
La requête suivante retourne une liste des salles avec 20 000 à 50 000 places :
select venueid, venuename, venueseats from venue where venueseats between 20000 and 50000 order by venueseats desc; venueid | venuename | venueseats ---------+-------------------------------+------------ 116 | Busch Stadium | 49660 106 | Rangers BallPark in Arlington | 49115 96 | Oriole Park at Camden Yards | 48876 ... (22 rows)
L'exemple suivant illustre l'utilisation BETWEEN des valeurs de date :
select salesid, qtysold, pricepaid, commission, saletime from sales where eventid between 1000 and 2000 and saletime between '2008-01-01' and '2008-01-03' order by saletime asc; salesid | qtysold | pricepaid | commission | saletime --------+---------+-----------+------------+--------------- 65082 | 4 | 472 | 70.8 | 1/1/2008 06:06 110917 | 1 | 337 | 50.55 | 1/1/2008 07:05 112103 | 1 | 241 | 36.15 | 1/2/2008 03:15 137882 | 3 | 1473 | 220.95 | 1/2/2008 05:18 40331 | 2 | 58 | 8.7 | 1/2/2008 05:57 110918 | 3 | 1011 | 151.65 | 1/2/2008 07:17 96274 | 1 | 104 | 15.6 | 1/2/2008 07:18 150499 | 3 | 135 | 20.25 | 1/2/2008 07:20 68413 | 2 | 158 | 23.7 | 1/2/2008 08:12
Notez que bien que BETWEEN la plage soit inclusive, les dates ont par défaut une valeur temporelle de 00:00:00. La seule ligne valide du 3 janvier pour l’exemple de requête serait une ligne dont saletime est 1/3/2008 00:00:00
.