In SQL ist der Kleiner-gleich-Operator (<=
) vergleicht zwei Ausdrücke und gibt TRUE
zurück wenn der linke Operand einen Wert hat, der kleiner oder gleich dem rechten Operanden ist; andernfalls ist das Ergebnis FALSE
.
Sie können damit feststellen, ob ein Wert kleiner oder gleich einem anderen Wert ist.
Beispiel
Hier ist ein Beispiel zur Veranschaulichung.
SELECT * FROM city
WHERE Population <= 455;
Ergebnis:
+------+--------------------+---------------+-------------+--------------+ | ID | Name | CountryCode | District | Population | |------+--------------------+---------------+-------------+--------------| | 2317 | West Island | CCK | West Island | 167 | | 2912 | Adamstown | PCN | – | 42 | | 3333 | Fakaofo | TKL | Fakaofo | 300 | | 3538 | Città del Vaticano | VAT | – | 455 | +------+--------------------+---------------+-------------+--------------+
Diese Abfrage gibt alle Städte zurück, die eine Bevölkerung von 455 oder weniger haben.
Inklusive
Der Kleiner-gleich-Operator schließt den angegebenen Wert in seine Auswertung ein. Wir haben dies im vorherigen Beispiel gesehen, als es die Stadt mit einer Bevölkerung von 455 enthielt, was genau der Wert war, den wir angegeben haben.
Wenn wir nicht möchten, dass diese Stadt eingeschlossen wird, müssen wir entweder den Wert verringern:
SELECT * FROM city
WHERE Population <= 454;
Ergebnis:
+------+-------------+---------------+-------------+--------------+ | ID | Name | CountryCode | District | Population | |------+-------------+---------------+-------------+--------------| | 2317 | West Island | CCK | West Island | 167 | | 2912 | Adamstown | PCN | – | 42 | | 3333 | Fakaofo | TKL | Fakaofo | 300 | +------+-------------+---------------+-------------+--------------+
Oder wir könnten einfach den Kleiner-als-Operator verwenden (<
) stattdessen:
SELECT * FROM city
WHERE Population < 455;
Ergebnis:
+------+-------------+---------------+-------------+--------------+ | ID | Name | CountryCode | District | Population | |------+-------------+---------------+-------------+--------------| | 2317 | West Island | CCK | West Island | 167 | | 2912 | Adamstown | PCN | – | 42 | | 3333 | Fakaofo | TKL | Fakaofo | 300 | +------+-------------+---------------+-------------+--------------+
Der Kleiner-als-Operator schließt den von Ihnen angegebenen Wert nicht ein.
Termine
Hier ist ein Beispiel zur Veranschaulichung der Verwendung des Kleiner-gleich-Operators zum Vergleichen von Datumswerten.
SELECT PetName, DOB
FROM Pets
WHERE DOB <= '2020-03-15';
Ergebnis:
+-----------+------------+ | PetName | DOB | |-----------+------------| | Fetch | 2019-08-16 | | Scratch | 2018-10-01 | | Wag | 2020-03-15 | +-----------+------------+
Strings
Sie können auch den <=
verwenden -Operator zum Vergleichen von Zeichenfolgenwerten. Verwenden Sie beim Vergleich mit einem Zeichenfolgenwert Anführungszeichen um das Zeichenfolgenliteral.
SELECT * FROM city
WHERE Name <= 'Ab';
Ergebnis:
+------+------------------------------+---------------+---------------------+--------------+ | ID | Name | CountryCode | District | Population | |------+------------------------------+---------------+---------------------+--------------| | 20 | ´s-Hertogenbosch | NLD | Noord-Brabant | 129170 | | 548 | Šumen | BGR | Varna | 94686 | | 670 | A Coruña (La Coruña) | ESP | Galicia | 243402 | | 698 | [San Cristóbal de] la Laguna | ESP | Canary Islands | 127945 | | 2450 | Šiauliai | LTU | Šiauliai | 146563 | | 3097 | Aachen | DEU | Nordrhein-Westfalen | 243825 | | 3318 | Aalborg | DNK | Nordjylland | 161161 | | 3479 | Šostka | UKR | Sumy | 90000 | | 3665 | Šahty | RUS | Rostov-na-Donu | 221800 | | 3736 | Štšolkovo | RUS | Moskova | 104900 | +------+------------------------------+---------------+---------------------+--------------+
Diese Abfrage gibt alle Städte zurück, die kleiner oder gleich Ab
sind . Grundsätzlich werden alle Städte zurückgegeben, die mit Buchstaben beginnen, die kleiner als Ab
sind oder genau Ab
.
Mehrere Bedingungen
Wenn Sie mehrere Bedingungen haben, können Sie mehrere <=
verwenden Betreiber.
So:
SELECT * FROM city
WHERE Name <= 'Ab' AND Population <= 100000;
Ergebnis:
+------+--------+---------------+------------+--------------+ | ID | Name | CountryCode | District | Population | |------+--------+---------------+------------+--------------| | 548 | Šumen | BGR | Varna | 94686 | | 3479 | Šostka | UKR | Sumy | 90000 | +------+--------+---------------+------------+--------------+
Vorrang
Sie können beim Filtern der Ergebnisse auch eine Kombination von Operatoren verwenden.
Beachten Sie, dass SQL eine Rangfolge hat, die es verschiedenen Operatortypen zuweist. Beispielsweise werden alle bedingten Operatoren vor allen logischen Operatoren wie AND
ausgewertet und OR
. Außerdem wertet es jedes AND
aus Operatoren vor jedem OR
Betreiber.
Klammern haben eine höhere Priorität als alle Operatoren, daher können Sie Klammern verwenden, um die Reihenfolge anzugeben, in der jede Bedingung ausgewertet werden soll.
Betrachten Sie das folgende Beispiel:
SELECT * FROM city
WHERE Name <= 'Ab'
AND Population <= 100000
OR District = 'Canary Islands';
Ergebnis:
+------+------------------------------+---------------+----------------+--------------+ | ID | Name | CountryCode | District | Population | |------+------------------------------+---------------+----------------+--------------| | 548 | Šumen | BGR | Varna | 94686 | | 660 | Las Palmas de Gran Canaria | ESP | Canary Islands | 354757 | | 672 | Santa Cruz de Tenerife | ESP | Canary Islands | 213050 | | 698 | [San Cristóbal de] la Laguna | ESP | Canary Islands | 127945 | | 3479 | Šostka | UKR | Sumy | 90000 | +------+------------------------------+---------------+----------------+--------------+
In dieser Abfrage habe ich keine Klammern angegeben, also das AND
Operator wurde vor dem OR
ausgewertet Betreiber.
Daher haben wir Zeilen erhalten, die entweder Name <= 'Ab' AND Population <= 100000
erfüllten oder District = 'Canary Islands'
. Wir sehen schon, dass alle Städte der Kanarischen Inseln zurückgegeben werden, plus alle Städte, die das erste Kriterium erfüllen.
Das ist wie das Folgende:
SELECT * FROM city
WHERE (Name <= 'Ab'
AND Population <= 100000)
OR District = 'Canary Islands';
Das würde uns das gleiche Ergebnis wie die vorherige Abfrage ohne Klammern liefern.
Aber schauen Sie, was passiert, wenn wir die Klammern zum OR
verschieben Zustand.
SELECT * FROM city
WHERE Name <= 'Ab'
AND (Population <= 100000
OR District = 'Canary Islands');
Ergebnis:
+------+------------------------------+---------------+----------------+--------------+ | ID | Name | CountryCode | District | Population | |------+------------------------------+---------------+----------------+--------------| | 548 | Šumen | BGR | Varna | 94686 | | 698 | [San Cristóbal de] la Laguna | ESP | Canary Islands | 127945 | | 3479 | Šostka | UKR | Sumy | 90000 | +------+------------------------------+---------------+----------------+--------------+
Dieses Mal haben wir nur die Städte, die sowohl Population <= 100000 OR District = 'Canary Islands'
erfüllen und Name <= 'Ab'
.
Verneinung der Bedingung
Sie können den NOT
verwenden -Operator, um die von <=
bereitgestellte Bedingung zu negieren Operator. Hier ist ein Beispiel:
SELECT PetName, DOB
FROM Pets
WHERE NOT DOB <= '2019-12-31';
Ergebnis:
+-----------+------------+ | PetName | DOB | |-----------+------------| | Fluffy | 2020-11-20 | | Wag | 2020-03-15 | | Tweet | 2020-11-28 | | Fluffy | 2020-09-17 | +-----------+------------+