Der SQL BETWEEN Operator

Der SQL BETWEEN Operator wird zusammen mit der WHERE-Klausel verwendet, um einen Wertebereich anzugeben. Die Werte können numerische Werte, Textwerte und Datumsangaben sein. Der SQL BETWEEN Operator ähnelt fast den SQL IN Operatoren, die in sequenzieller Weise verwendet werden. Die Werte, die als Teil des BETWEEN-Bereichs definiert sind, sind inklusiv, d.h. die im Bereich angegebenen Werte sind sowohl als Start- als auch als Endwerte eingeschlossen. Lassen Sie uns im Detail über den BETWEEN-Operator sprechen. Wie oben erwähnt, kann der BETWEEN-Operator zusammen mit numerischen Werten, Textwerten und Datumsangaben verwendet werden. Wir werden alle drei im Folgenden detailliert besprechen.

SQL Between Syntax

SELECT Spalte(n) FROM Tabellenname WHERE Spalte BETWEEN Wert1 UND Wert2;

Mit der oben genannten Syntax können wir Werte als Teil des BETWEEN-Operators definieren. Außerdem bleibt die oben genannte Syntax gleich, unabhängig davon, ob sie mit einem numerischen Wert, Textwert oder Datumsangabe verwendet wird.

SQL BETWEEN Operator für numerische Werte

Wir werden die oben genannte Syntax anhand einiger Beispiele für numerische Werte genauer verstehen. Betrachten wir dazu die folgende Schülertabelle als Beispiel.

RollNr SchülerName SchülerGeschlecht SchülerAlter SchülerProzent Aufnahmedatum
1 George M 14 85 2018-01-01
2 Monica F 12 88 2018-01-31
3 Jessica F 13 84 2018-01-15
4 Tom M 11 78 2017-12-15

Ich verwende die MySQL-Datenbank und hier ist das Skript, um die Beispiel-Datensätze in der Schülertabelle zu erstellen und einzufügen.

CREATE TABLE `Schüler` (
  `rollnr` int(11) unsigned NOT NULL,
  `schülername` varchar(20) DEFAULT NULL,
  `schülergeschlecht` varchar(5) DEFAULT NULL,
  `schüleralter` int(3) DEFAULT NULL,
  `schülerprozent` int(3) DEFAULT NULL,
  `aufnahmedatum` date DEFAULT NULL,
  PRIMARY KEY (`rollnr`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `Schüler` (`rollnr`, `schülername`, `schülergeschlecht`, `schüleralter`, `schülerprozent`, `aufnahmedatum`)
VALUES
    (1, 'George', 'M', 14, 85, '2018-01-01'),
    (2, 'Monica', 'F', 12, 88, '2018-01-31'),
    (3, 'Jessica', 'F', 13, 84, '2018-01-15'),
    (4, 'Tom', 'M', 11, 78, '2017-12-15');

Szenario: Ermitteln Sie den Prozentsatz der Schüler, deren Alter zwischen 11 und 13 liegt.

SELECT SchülerProzent FROM Schüler WHERE SchülerAlter BETWEEN 11 UND 13;

Ausgabe:

SchülerProzent

88

84

78

Beispiel für die SQL Between-Klausel

SQL NOT BETWEEN Operator für numerische Werte

Der SQL NOT BETWEEN Operator wird verwendet, um die Werte als Teil des Ergebnissets zu erhalten, die außerhalb des durch den BETWEEN-Operator angegebenen Bereichs liegen. Szenario: Ermitteln Sie den Prozentsatz der Schüler, deren Alter nicht zwischen 11 und 13 liegt.

SELECT SchülerProzent FROM Schüler WHERE SchülerAlter NOT BETWEEN 11 UND 13;

Ausgabe:

SchülerProzent

85

sql not between Beispiel

SQL BETWEEN Operator für Textwerte

Szenario: Ermitteln Sie die RollNr, SchülerName und SchülerAlter, bei denen SchülerName zwischen George und Jessica liegt.

SELECT RollNr, SchülerName, SchülerAlter FROM Schüler WHERE SchülerName BETWEEN ‚George‘ UND ‚Jessica‘;

Ausgabe:

RollNr SchülerName SchülerAlter
1 George 14
3 Jessica 13

SQL NOT BETWEEN Operator für Textwerte

Szenario: Ermitteln Sie die RollNr, SchülerName und SchülerAlter, bei denen SchülerName nicht zwischen George und Jessica liegt.

SELECT RollNr, SchülerName, SchülerAlter FROM Schüler WHERE SchülerName NOT BETWEEN ‚George‘ UND ‚Jessica‘;

Ausgabe:

RollNr SchülerName SchülerAlter
2 Monica 12
4 Tom 11

SQL BETWEEN Operator für Datumsangaben

Szenario: Ermitteln Sie das Alter der Schüler, deren Aufnahme zwischen dem 1. Januar 2018 und dem 31. Januar 2018 liegt.

SELECT SchülerAlter FROM Schüler WHERE aufnahmedatum BETWEEN str_to_date(‚2018-01-01‘, ‚%Y-%m-%d‘) UND ‚2018-01-31‘;

Ausgabe:

SchülerAlter

14

12

13

Beachten Sie, dass ich die native MySQL-Funktion str_to_date verwende, um die Zeichenkette in ein Datum umzuwandeln. Wenn die Zeichenkette im Standardformat vorliegt, können wir sie auch so verwenden, wie ich es für das zweite Argument getan habe. Wenn Sie Oracle DB verwenden, entspricht die entsprechende Funktion TO_DATE.

SQL Between Date Beispiel

SQL NOT BETWEEN Operator für Datumsangaben

Szenario: Ermitteln Sie das Alter der Schüler, deren Aufnahme nicht zwischen dem 1. Januar 2018 und dem 31. Januar 2018 liegt.

SELECT SchülerAlter FROM Schüler WHERE aufnahmedatum NOT BETWEEN str_to_date(‚2018-01-01‘, ‚%Y-%m-%d‘) UND ‚2018-01-31‘;

Ausgabe:

SchülerAlter

11

MULTIPLE BETWEEN Operatoren

Wir können auch mehrere BETWEEN-Operatoren verwenden. Die Syntax lautet:

SELECT Spalte(n) FROM Tabellenname WHERE 
spaltenname BETWEEN Wert1 UND Wert2 
UND 
spaltenname BETWEEN Wert3 und Wert4 
... 
UND 
BETWEEN spaltenname BETWEEN WertN und WertM;

Mit der oben genannten Syntax können wir mehrere BETWEEN-Operatoren verwenden. Szenario: Ermitteln Sie den Schülernamen mit einem Alter zwischen 10 und 13 und Noten zwischen 80 und 85 Prozent.

SELECT SchülerName FROM Schüler WHERE
SchülerAlter BETWEEN 10 UND 13
UND
SchülerProzent BETWEEN 80 UND 85;

Ausgabe:
SchülerName
Jessica

[tags]

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: