0Pricing
SQL Academy · Lektion

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 > 20

Bereichsabfragen 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;   -- TRUE

Zusammenfassung

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

  1. LIKE-Muster und Platzhalter
  2. IN und NOT IN für Mengen
  3. BETWEEN für Wertebereiche
  4. IS NULL, IS NOT NULL und COALESCE
← Zurück zu SQL Academy