BETWEEN für Wertebereiche
Verwenden Sie BETWEEN für inklusive Zahlen- und Datumsbereiche und wissen Sie, wann explizite Vergleiche mit >= und < für halb offene Intervalle vorzuziehen sind.
BETWEEN für Wertebereiche ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
BETWEEN ist inklusiv
BETWEEN a AND b findet Werte, für die x >= a AND x <= b gilt. Beide Endpunkte sind inklusiv.
SELECT * FROM orders WHERE total BETWEEN 100 AND 500;
-- equivalent to:
SELECT * FROM orders WHERE total >= 100 AND total <= 500;Datumsbereiche
BETWEEN funktioniert auch mit Datumswerten und Zeitstempeln:
SELECT * FROM orders
WHERE created_at BETWEEN '2024-01-01' AND '2024-12-31';Die Falle mit inklusiven Endpunkten
Bei einer TIMESTAMP-Spalte endet BETWEEN '2024-12-31' um Mitternacht am 31.12., NICHT am Tagesende. Bestellungen vom 31. Dezember um 14:00 Uhr werden ausgeschlossen.
-- WRONG — misses orders later on Dec 31:
WHERE created_at BETWEEN '2024-12-01' AND '2024-12-31';
-- RIGHT — half-open interval:
WHERE created_at >= '2024-12-01'
AND created_at < '2025-01-01';Für Zeitangaben halb offene Intervalle bevorzugen
Das halb offene Muster >= start AND < next_period ist eindeutig, funktioniert für jede Granularität und lässt sich für aufeinanderfolgende Zeiträume natürlich aneinanderreihen.
WHERE created_at >= date_trunc('month', NOW())
AND created_at < date_trunc('month', NOW()) + INTERVAL '1 month';NOT BETWEEN
Das Gegenteil von BETWEEN – schließt den Bereich aus:
SELECT * FROM products WHERE price NOT BETWEEN 10 AND 20;
-- equivalent to: price < 10 OR price > 20Bereichsabfragen und Indizes
Ein B-Tree-Index unterstützt Bereichsabfragen. Bei zusammengesetzten Indizes sollte die Bereichsspalte für eine optimale Selektivität an letzter Stelle stehen:
CREATE INDEX orders_user_total_idx ON orders (user_id, total);
-- Efficient: equality on user_id, range on total
SELECT * FROM orders
WHERE user_id = 42 AND total BETWEEN 100 AND 500;Zeichenketten und BETWEEN
BETWEEN vergleicht Zeichenketten lexikografisch. Achten Sie auf die Groß- und Kleinschreibung:
SELECT * FROM users WHERE last_name BETWEEN 'A' AND 'C';
-- Includes 'Adams' and 'Bond', excludes 'C' itself only if 'C' < 'Ca...'Bereichstypen (PostgreSQL)
PostgreSQL verfügt über eigene Bereichstypen für halb offene Intervalle:
SELECT int4range(10, 20) @> 15; -- true (15 in [10,20))
SELECT tsrange('2024-01-01', '2025-01-01') @> NOW()::TIMESTAMP;Bereiche mit CHECK validieren
Stellen Sie beim Einfügen sicher, dass start <= end gilt:
CREATE TABLE bookings (
id BIGSERIAL PRIMARY KEY,
start_at TIMESTAMPTZ NOT NULL,
end_at TIMESTAMPTZ NOT NULL,
CHECK (start_at < end_at)
);Numerische Gruppierung
Kombinieren Sie BETWEEN mit CASE, um Gruppen zu bilden:
SELECT id, total,
CASE
WHEN total BETWEEN 0 AND 99 THEN 'small'
WHEN total BETWEEN 100 AND 999 THEN 'medium'
ELSE 'large'
END AS bucket
FROM orders;BETWEEN SYMMETRIC
Eine Erweiterung des SQL-Standards, bei der es keine Rolle spielt, welche Seite kleiner ist:
SELECT 5 BETWEEN SYMMETRIC 10 AND 1; -- TRUEZusammenfassung
BETWEEN ist eine praktische Kurzform für inklusive Bereiche.
- Achten Sie auf Zeitstempel-Endpunkte – bevorzugen Sie halb offene Intervalle mit
>= start AND < end - Zusammengesetzte Indizes beschleunigen Bereichsabfragen
- CHECK-Constraints erzwingen gültige Bereiche
Kurzer Check
Sind in Standard-SQL beide Endpunkte von BETWEEN a AND b inklusiv?
Häufig gestellte Fragen
Ist die Lektion „BETWEEN für Wertebereiche“ kostenlos?
Ja — der vollständige Text von „BETWEEN für Wertebereiche“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „BETWEEN für Wertebereiche“?
Verwenden Sie BETWEEN für inklusive Zahlen- und Datumsbereiche und wissen Sie, wann explizite Vergleiche mit >= und < für halb offene Intervalle vorzuziehen sind. Du übst SQL Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um SQL Academy zu starten?
Keine Vorkenntnisse erforderlich. SQL Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „BETWEEN für Wertebereiche“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser SQL Academy-Lektion Code schreiben und ausführen?
Ja. Jede SQL Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- LIKE-Muster und Platzhalter
- IN und NOT IN für Mengen
- BETWEEN für Wertebereiche
- IS NULL, IS NOT NULL und COALESCE