Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
BETWEEN-Bereichsbedingung
Eine BETWEEN
-Bedingung überprüft, ob Ausdrücke Elemente aus einem Bereich von Werten enthalten, der über die Schlüsselwörter BETWEEN
und AND
angegeben wird.
Syntax
expression [ NOT ] BETWEEN expression AND expression
Der Datentyp der Ausdrücke kann ein numerischer, ein Zeichen- oder ein Datum/Uhrzeit-Typ sein, die Typen müssen jedoch untereinander kompatibel sein. Der angegebene Bereich versteht sich inklusive der angegebenen Werte.
Beispiele
Im ersten Beispiel werden die Transaktionen, bei denen 2, 3, oder 4 Tickets verkauft wurden, gezählt:
select count(*) from sales where qtysold between 2 and 4; count -------- 104021 (1 row)
Bei der Bereichsbedingung werden die Anfangs- und Endwerte mitgezählt (inklusiver Bereich).
select min(dateid), max(dateid) from sales where dateid between 1900 and 1910; min | max -----+----- 1900 | 1910
Bei einer Bereichsbedingung muss der erste Wert stets der kleinere und der zweite der größere sein. In dem folgenden Beispiel werden immer 0 Zeilen zurückgegeben, weil die Werte in dem Bedingungsausdruck vertauscht wurden:
select count(*) from sales where qtysold between 4 and 2; count ------- 0 (1 row)
Wenn die Bedingung mit NOT negiert wird, werden nicht 0, sondern alle Zeilen gezählt:
select count(*) from sales where qtysold not between 4 and 2; count -------- 172456 (1 row)
Die folgende Abfrage gibt eine Liste der Events mit 20.000 bis 50.000 Plätzen zurück:
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)
Das folgende Beispiel zeigt die Verwendung von BETWEEN für Datumswerte:
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
Beachten Sie, dass sich der BETWEEN-Bereich zwar inklusive der angegebenen Werte versteht, die Datumsangaben jedoch standardmäßig einen Zeitwert von 00:00:00 haben. Die einzige gültige Zeile für 3. Januar bei der Beispielabfrage wäre eine Zeile mit der Saletime (Verkaufszeit) 1/3/2008 00:00:00
.