PostgreSQL BETWEEN
Der `BETWEEN` Operator in PostgreSQL wird verwendet, um die Ergebnismenge innerhalb eines bestimmten Wertebereichs zu filtern. Sie ist inklusiv, das heißt, beide Grenzwerte werden als Teil des Bereichs betrachtet.
Verwendung
Der `BETWEEN`-Operator wird normalerweise in `WHERE`-Klauseln verwendet, um Werte innerhalb eines bestimmten Bereichs auszuwählen. Sie kann auf numerische, Text- und Datumsdaten angewendet werden.
SELECT column_name
FROM table_name
WHERE column_name BETWEEN lower_bound AND upper_bound;
In dieser Syntax wird "Spaltenname" daraufhin überprüft, ob seine Werte innerhalb von "untere_grenze" und "obere_grenze" liegen. Beachte, dass, wenn `Spaltenname` `NULL` ist, das Ergebnis von `BETWEEN` ebenfalls `NULL` ist und diese Zeilen somit aus der Ergebnismenge ausgeschlossen werden.
Beispiele
1. Numerischer Grundbereich
SELECT *
FROM products
WHERE price BETWEEN 10 AND 20;
Diese Abfrage ruft alle Datensätze aus der Tabelle "Produkte" ab, bei denen der "Preis" zwischen 10 und 20 liegt.
2. Datumsbereich
SELECT order_id, order_date
FROM orders
WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';
Dieses Beispiel filtert Bestellungen, die innerhalb des Jahres 2023 aufgegeben werden, indem es prüft, ob das "Bestelldatum" in den angegebenen Datumsbereich fällt.
3. Textbereich
SELECT employee_id, last_name
FROM employees
WHERE last_name BETWEEN 'A' AND 'M';
Diese Abfrage wählt Mitarbeiter aus, deren Nachnamen mit Buchstaben von 'A' bis 'M' beginnen. Der Bereich wird durch lexikografische Ordnung bestimmt, d.h. der Vergleich basiert auf der alphabetischen Reihenfolge der Zeichen.
Tipps und bewährte Praktiken
- Inklusive Grenzen. Denke daran, dass `BETWEEN` die Grenzwerte einschließt; wenn du exklusive Grenzen brauchst, solltest du `>`, `<`, `>=` oder `<=` verwenden.
- Konsistente Datentypen. Vergewissere dich, dass die Datentypen der Spalte und der Begrenzungen kompatibel sind, um Fehler zu vermeiden.
- Verwendung mit Datumsfunktionen. Kombiniere `BETWEEN` mit Datumsfunktionen wie `CURRENT_DATE` für dynamische Datumsbereiche.
- Berücksichtige die Leistung. Achte bei großen Datensätzen darauf, dass die mit `BETWEEN` verwendete Spalte indiziert ist, um die Abfrageleistung zu verbessern.
- Funktion Verwendung Vorsicht. Sei vorsichtig, wenn du Funktionen auf die Spalte innerhalb der `BETWEEN`-Klausel anwendest, da dies die Vorteile der Indizierung zunichte machen und die Leistung beeinträchtigen kann.