In SQL ist der Größer-gleich-Operator (>=
) vergleicht zwei Ausdrücke und gibt TRUE
zurück wenn der linke Operand einen Wert hat, der größer oder gleich dem rechten Operanden ist; andernfalls wird FALSE
zurückgegeben .
Beispiel
Hier ist ein Beispiel zur Veranschaulichung.
SELECT * FROM city
WHERE Population >= 9269265
ORDER BY Population ASC;
Ergebnis:
+------+-----------------+---------------+--------------+--------------+ | ID | Name | CountryCode | District | Population | |------+-----------------+---------------+--------------+--------------| | 2822 | Karachi | PAK | Sindh | 9269265 | | 939 | Jakarta | IDN | Jakarta Raya | 9604900 | | 1890 | Shanghai | CHN | Shanghai | 9696300 | | 206 | São Paulo | BRA | São Paulo | 9968485 | | 2331 | Seoul | KOR | Seoul | 9981619 | | 1024 | Mumbai (Bombay) | IND | Maharashtra | 10500000 | +------+-----------------+---------------+--------------+--------------+
Diese Abfrage gibt alle Städte zurück, die eine Bevölkerung von größer oder gleich 9269265 haben.
Inklusive
Der Größer-gleich-Operator schließt den angegebenen Wert in seine Auswertung ein.
Beispielsweise umfasste die vorherige Abfrage Karatschi, das laut dieser Datenbank genau 9269265 Einwohner hat.
Wenn wir Städte mit dieser Bevölkerung ausschließen wollten, müssten wir entweder den angegebenen Wert erhöhen:
SELECT * FROM city
WHERE Population >= 9269266
ORDER BY Population ASC;
Ergebnis:
+------+-----------------+---------------+--------------+--------------+ | ID | Name | CountryCode | District | Population | |------+-----------------+---------------+--------------+--------------| | 939 | Jakarta | IDN | Jakarta Raya | 9604900 | | 1890 | Shanghai | CHN | Shanghai | 9696300 | | 206 | São Paulo | BRA | São Paulo | 9968485 | | 2331 | Seoul | KOR | Seoul | 9981619 | | 1024 | Mumbai (Bombay) | IND | Maharashtra | 10500000 | +------+-----------------+---------------+--------------+--------------+
Oder wir könnten einfach größer als (>
verwenden )-Operator statt:
SELECT * FROM city
WHERE Population > 9269265
ORDER BY Population ASC;
Ergebnis:
+------+-----------------+---------------+--------------+--------------+ | ID | Name | CountryCode | District | Population | |------+-----------------+---------------+--------------+--------------| | 939 | Jakarta | IDN | Jakarta Raya | 9604900 | | 1890 | Shanghai | CHN | Shanghai | 9696300 | | 206 | São Paulo | BRA | São Paulo | 9968485 | | 2331 | Seoul | KOR | Seoul | 9981619 | | 1024 | Mumbai (Bombay) | IND | Maharashtra | 10500000 | +------+-----------------+---------------+--------------+--------------+
Termine
Hier ist ein Beispiel zur Veranschaulichung der Verwendung des Größer-gleich-Operators zum Vergleichen von Datumswerten.
SELECT PetName, DOB
FROM Pets
WHERE DOB >= '2020-03-15';
Ergebnis:
+-----------+------------+ | PetName | DOB | |-----------+------------| | Fluffy | 2020-11-20 | | Wag | 2020-03-15 | | Tweet | 2020-11-28 | | Fluffy | 2020-09-17 | +-----------+------------+
Strings
Sie können auch den Größer-gleich-Operator verwenden, um Zeichenfolgenwerte zu vergleichen. Verwenden Sie beim Vergleichen mit einem Zeichenfolgenwert Anführungszeichen um die Zeichenfolge.
SELECT * FROM city
WHERE Name >= 'Zukovski'
ORDER BY Name;
Ergebnis:
+------+----------+---------------+------------+--------------+ | ID | Name | CountryCode | District | Population | |------+----------+---------------+------------+--------------| | 3756 | Zukovski | RUS | Moskova | 96500 | | 2669 | Zumpango | MEX | México | 99781 | | 2025 | Zunyi | CHN | Guizhou | 261862 | | 3245 | Zürich | CHE | Zürich | 336800 | | 3145 | Zwickau | DEU | Saksi | 104146 | | 28 | Zwolle | NLD | Overijssel | 105819 | | 3446 | Zytomyr | UKR | Zytomyr | 297000 | +------+----------+---------------+------------+--------------+
Mehrere Bedingungen
Wenn Sie mehrere Bedingungen haben, können Sie mehrere >=
verwenden Betreiber.
So:
SELECT * FROM city
WHERE Name >= 'Zukovski' AND Population >= 200000;
Ergebnis:
+------+---------+---------------+------------+--------------+ | ID | Name | CountryCode | District | Population | |------+---------+---------------+------------+--------------| | 2025 | Zunyi | CHN | Guizhou | 261862 | | 3245 | Zürich | CHE | Zürich | 336800 | | 3446 | Zytomyr | UKR | Zytomyr | 297000 | +------+---------+---------------+------------+--------------+
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
. Es wertet auch 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 >= 'Zukovski'
AND Population >= 100000
OR District = 'Overijssel';
Ergebnis:
+------+----------+---------------+------------+--------------+ | ID | Name | CountryCode | District | Population | |------+----------+---------------+------------+--------------| | 15 | Enschede | NLD | Overijssel | 149544 | | 28 | Zwolle | NLD | Overijssel | 105819 | | 2025 | Zunyi | CHN | Guizhou | 261862 | | 3145 | Zwickau | DEU | Saksi | 104146 | | 3245 | Zürich | CHE | Zürich | 336800 | | 3446 | Zytomyr | UKR | Zytomyr | 297000 | +------+----------+---------------+------------+--------------+
In dieser Abfrage habe ich keine Klammern angegeben, also das AND
Operator wurde vor dem OR
ausgewertet Betreiber.
Daher haben wir Zeilen, die entweder Name >= 'Zukovski' AND Population >= 100000
erfüllten oder District = 'Overijssel'
. Wir sehen schon, dass alle Städte aus dem Bezirk Overijssel zurückgegeben werden, plus alle Städte, die das erste Kriterium erfüllen.
Das ist wie das Folgende:
SELECT * FROM city
WHERE (Name >= 'Zukovski'
AND Population >= 100000)
OR District = 'Overijssel';
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 >= 'Zukovski'
AND (Population >= 100000
OR District = 'Overijssel');
Ergebnis:
+------+---------+---------------+------------+--------------+ | ID | Name | CountryCode | District | Population | |------+---------+---------------+------------+--------------| | 28 | Zwolle | NLD | Overijssel | 105819 | | 2025 | Zunyi | CHN | Guizhou | 261862 | | 3145 | Zwickau | DEU | Saksi | 104146 | | 3245 | Zürich | CHE | Zürich | 336800 | | 3446 | Zytomyr | UKR | Zytomyr | 297000 | +------+---------+---------------+------------+--------------+
Dieses Mal haben wir nur die Städte, die sowohl Population >= 100000 OR District = 'Overijssel'
erfüllen und Name >= 'Overijssel'
.
Dies führte dazu, dass nur eine Stadt aus Overijssel zurückgegeben wurde, im Gegensatz zu zwei in der vorherigen Abfrage.
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 | |-----------+------------| | Fetch | 2019-08-16 | | Scratch | 2018-10-01 | +-----------+------------+