sql >> Database teknologi >  >> RDS >> Database

SQL mindre end eller lig med (=) operatør for begyndere

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 |
+-----------+------------+

  1. Adressering af Drop Column Bug i Oracle 18c og 19c

  2. Webinar:Banking on Postgres – Finansielle ansøgningsovervejelser [Opfølgning]

  3. MySQL SQRT() Funktion – Returner kvadratroden af ​​et tal i MySQL

  4. Kalder lagret procedure med returværdi