I SQL är operatorn större än eller lika med (>=
) jämför två uttryck och returnerar TRUE
om den vänstra operanden har ett värde större än eller lika med den högra operanden; annars returnerar den FALSE
.
Exempel
Här är ett exempel att visa.
SELECT * FROM city
WHERE Population >= 9269265
ORDER BY Population ASC;
Resultat:
+------+-----------------+---------------+--------------+--------------+ | 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 | +------+-----------------+---------------+--------------+--------------+
Den här frågan returnerar alla städer som har en befolkning som är större än eller lika med 9269265.
Inklusive
Operatorn större än eller lika med inkluderar det angivna värdet i sin utvärdering.
Till exempel inkluderade den tidigare frågan Karachi, som enligt denna databas har en befolkning på exakt 9269265.
Om vi ville utesluta städer med den befolkningen skulle vi antingen behöva öka det angivna värdet:
SELECT * FROM city
WHERE Population >= 9269266
ORDER BY Population ASC;
Resultat:
+------+-----------------+---------------+--------------+--------------+ | 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 | +------+-----------------+---------------+--------------+--------------+
Eller så kan vi helt enkelt använda större än (>
)-operatör istället:
SELECT * FROM city
WHERE Population > 9269265
ORDER BY Population ASC;
Resultat:
+------+-----------------+---------------+--------------+--------------+ | 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 | +------+-----------------+---------------+--------------+--------------+
Datum
Här är ett exempel för att visa hur operatorn större än eller lika med används för att jämföra datumvärden.
SELECT PetName, DOB
FROM Pets
WHERE DOB >= '2020-03-15';
Resultat:
+-----------+------------+ | PetName | DOB | |-----------+------------| | Fluffy | 2020-11-20 | | Wag | 2020-03-15 | | Tweet | 2020-11-28 | | Fluffy | 2020-09-17 | +-----------+------------+
Strängar
Du kan också använda operatorn större än eller lika med för att jämföra strängvärden. När du jämför med ett strängvärde, använd citattecken runt strängen.
SELECT * FROM city
WHERE Name >= 'Zukovski'
ORDER BY Name;
Resultat:
+------+----------+---------------+------------+--------------+ | 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 | +------+----------+---------------+------------+--------------+
Flera villkor
Om du har flera villkor kan du använda flera >=
operatörer.
Så här:
SELECT * FROM city
WHERE Name >= 'Zukovski' AND Population >= 200000;
Resultat:
+------+---------+---------------+------------+--------------+ | ID | Name | CountryCode | District | Population | |------+---------+---------------+------------+--------------| | 2025 | Zunyi | CHN | Guizhou | 261862 | | 3245 | Zürich | CHE | Zürich | 336800 | | 3446 | Zytomyr | UKR | Zytomyr | 297000 | +------+---------+---------------+------------+--------------+
Tillrang
Du kan också använda en kombination av operatorer när du filtrerar resultaten.
Observera att SQL har en prioritetsordning som den tilldelar olika operatörstyper. Till exempel utvärderar den eventuella villkorliga operatorer före logiska operatorer, såsom AND
och OR
. Den utvärderar också alla AND
operatorer före någon OR
operatörer.
Parenteser har högre prioritet än alla operatorer, så du kan använda parenteser för att ange i vilken ordning varje villkor ska utvärderas.
Tänk på följande exempel:
SELECT * FROM city
WHERE Name >= 'Zukovski'
AND Population >= 100000
OR District = 'Overijssel';
Resultat:
+------+----------+---------------+------------+--------------+ | 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 | +------+----------+---------------+------------+--------------+
I den här frågan angav jag inga parenteser, och därför AND
operatorn utvärderades före OR
operatör.
Därför fick vi rader som uppfyllde antingen Name >= 'Zukovski' AND Population >= 100000
eller District = 'Overijssel'
. Vi kan se bara genom att titta på detta att alla städer från Overijssel-distriktet kommer att återlämnas, plus alla städer som uppfyller de första kriterierna.
Det är som att göra följande:
SELECT * FROM city
WHERE (Name >= 'Zukovski'
AND Population >= 100000)
OR District = 'Overijssel';
Det skulle ge oss samma resultat som den föregående frågan utan parentes.
Men se vad som händer när vi flyttar parenteserna till OR
skick.
SELECT * FROM city
WHERE Name >= 'Zukovski'
AND (Population >= 100000
OR District = 'Overijssel');
Resultat:
+------+---------+---------------+------------+--------------+ | 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 | +------+---------+---------------+------------+--------------+
Den här gången fick vi bara de städer som tillfredsställde både Population >= 100000 OR District = 'Overijssel'
och Name >= 'Overijssel'
.
Detta resulterade i att endast en stad från Overijssel returnerades, till skillnad från två i den föregående frågan.
Negerar villkoret
Du kan använda NOT
operatorn för att negera villkoret som tillhandahålls av >=
operatör. Här är ett exempel:
SELECT PetName, DOB
FROM Pets
WHERE NOT DOB >= '2019-12-31';
Resultat:
+-----------+------------+ | PetName | DOB | |-----------+------------| | Fetch | 2019-08-16 | | Scratch | 2018-10-01 | +-----------+------------+