I SQL er operatoren mindre end eller lig med (<=
) sammenligner to udtryk og returnerer TRUE
hvis venstre operand har en værdi lavere end eller lig med højre operand; ellers er resultatet FALSE
.
Du kan bruge den til at bestemme, om en værdi er mindre end eller lig med en anden værdi.
Eksempel
Her er et eksempel til at demonstrere.
SELECT * FROM city
WHERE Population <= 455;
Resultat:
+------+--------------------+---------------+-------------+--------------+ | 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 | +------+--------------------+---------------+-------------+--------------+
Denne forespørgsel returnerer alle byer, der har en befolkning på 455 eller derunder.
Inklusiv
Operatoren mindre end eller lig med inkluderer den angivne værdi i sin evaluering. Vi så dette i det foregående eksempel, da det inkluderede byen med en befolkning på 455, hvilket var den nøjagtige værdi, som vi specificerede.
Hvis vi ikke ønskede, at denne by skulle inkluderes, skulle vi enten sænke værdien:
SELECT * FROM city
WHERE Population <= 454;
Resultat:
+------+-------------+---------------+-------------+--------------+ | ID | Name | CountryCode | District | Population | |------+-------------+---------------+-------------+--------------| | 2317 | West Island | CCK | West Island | 167 | | 2912 | Adamstown | PCN | – | 42 | | 3333 | Fakaofo | TKL | Fakaofo | 300 | +------+-------------+---------------+-------------+--------------+
Eller vi kunne simpelthen bruge mindre end-operatoren (<
) i stedet:
SELECT * FROM city
WHERE Population < 455;
Resultat:
+------+-------------+---------------+-------------+--------------+ | ID | Name | CountryCode | District | Population | |------+-------------+---------------+-------------+--------------| | 2317 | West Island | CCK | West Island | 167 | | 2912 | Adamstown | PCN | – | 42 | | 3333 | Fakaofo | TKL | Fakaofo | 300 | +------+-------------+---------------+-------------+--------------+
Operatoren mindre end inkluderer ikke den værdi, du angiver.
Datoer
Her er et eksempel til at demonstrere brugen af operatoren mindre end eller lig med til at sammenligne datoværdier.
SELECT PetName, DOB
FROM Pets
WHERE DOB <= '2020-03-15';
Resultat:
+-----------+------------+ | PetName | DOB | |-----------+------------| | Fetch | 2019-08-16 | | Scratch | 2018-10-01 | | Wag | 2020-03-15 | +-----------+------------+
Strenge
Du kan også bruge <=
operatør for at sammenligne strengværdier. Når du sammenligner med en strengværdi, skal du bruge anførselstegn omkring strengen.
SELECT * FROM city
WHERE Name <= 'Ab';
Resultat:
+------+------------------------------+---------------+---------------------+--------------+ | 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 | +------+------------------------------+---------------+---------------------+--------------+
Denne forespørgsel returnerer alle byer, der er mindre end eller lig med Ab
. Grundlæggende returnerer den alle byer, der starter med bogstaver lavere end Ab
eller præcis Ab
.
Flere betingelser
Hvis du har flere betingelser, kan du bruge flere <=
operatører.
Sådan:
SELECT * FROM city
WHERE Name <= 'Ab' AND Population <= 100000;
Resultat:
+------+--------+---------------+------------+--------------+ | ID | Name | CountryCode | District | Population | |------+--------+---------------+------------+--------------| | 548 | Šumen | BGR | Varna | 94686 | | 3479 | Šostka | UKR | Sumy | 90000 | +------+--------+---------------+------------+--------------+
Forrang
Du kan også bruge en kombination af operatorer, når du filtrerer resultaterne.
Bemærk, at SQL har en rækkefølge, som den tildeler til forskellige operatortyper. For eksempel evaluerer den eventuelle betingede operatorer før logiske operatorer, såsom AND
og OR
. Desuden evaluerer den enhver AND
operatorer før enhver OR
operatører.
Parenteser har en højere prioritet end alle operatorer, og du kan derfor bruge parenteser til at angive den rækkefølge, som hver betingelse skal evalueres i.
Overvej følgende eksempel:
SELECT * FROM city
WHERE Name <= 'Ab'
AND Population <= 100000
OR District = 'Canary Islands';
Resultat:
+------+------------------------------+---------------+----------------+--------------+ | 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 | +------+------------------------------+---------------+----------------+--------------+
I denne forespørgsel angav jeg ingen parenteser, og derfor AND
operatoren blev evalueret før OR
operatør.
Derfor fik vi rækker, der opfyldte enten Name <= 'Ab' AND Population <= 100000
eller District = 'Canary Islands'
. Bare ved at se på dette kan vi se, at alle byer fra De Kanariske Øer vil blive returneret, plus alle byer, der opfylder de første kriterier.
Det er ligesom at gøre følgende:
SELECT * FROM city
WHERE (Name <= 'Ab'
AND Population <= 100000)
OR District = 'Canary Islands';
Det ville give os det samme resultat som den forrige forespørgsel uden parentes.
Men se, hvad der sker, når vi flytter parenteserne til OR
tilstand.
SELECT * FROM city
WHERE Name <= 'Ab'
AND (Population <= 100000
OR District = 'Canary Islands');
Resultat:
+------+------------------------------+---------------+----------------+--------------+ | 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 | +------+------------------------------+---------------+----------------+--------------+
Denne gang fik vi kun de byer, der tilfredsstillede både Population <= 100000 OR District = 'Canary Islands'
og Name <= 'Ab'
.
Nægter betingelsen
Du kan bruge NOT
operatør for at ophæve betingelsen fra <=
operatør. Her er et eksempel:
SELECT PetName, DOB
FROM Pets
WHERE NOT DOB <= '2019-12-31';
Resultat:
+-----------+------------+ | PetName | DOB | |-----------+------------| | Fluffy | 2020-11-20 | | Wag | 2020-03-15 | | Tweet | 2020-11-28 | | Fluffy | 2020-09-17 | +-----------+------------+