sql >> Databasteknik >  >> RDS >> Database

SQL mindre än eller lika med (=) operatör för nybörjare

I SQL är operatorn mindre än eller lika med (<= ) jämför två uttryck och returnerar TRUE om den vänstra operanden har ett värde som är lägre än eller lika med den högra operanden; annars blir resultatet FALSE .

Du kan använda den för att avgöra om ett värde är mindre än eller lika med ett annat värde.

Exempel

Här är ett exempel att visa.

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

Den här frågan returnerar alla städer som har en befolkning på 455 eller lägre.

Inklusive

Operatorn mindre än eller lika med inkluderar det angivna värdet i sin utvärdering. Vi såg detta i föregående exempel när det inkluderade staden med en befolkning på 455, vilket var det exakta värdet som vi angav.

Om vi ​​inte ville att den här staden skulle inkluderas måste vi antingen sänka värdet:

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 så kan vi helt enkelt använda mindre än-operatorn (< ) istället:

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

Operatorn mindre än inkluderar inte värdet som du anger.

Datum

Här är ett exempel som visar att du använder operatorn mindre än eller lika med för att jämföra datumvärden.

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

Strängar

Du kan också använda <= operator för att jämföra strängvärden. När du jämför med ett strängvärde, använd citattecken runt den bokstavliga strängen.

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

Den här frågan returnerar alla städer som är mindre än eller lika med Ab . I princip returnerar den alla städer som börjar med bokstäver lägre än Ab eller exakt Ab .

Flera villkor

Om du har flera villkor kan du använda flera <= operatörer.

Så här:

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

Precedens

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 . Dessutom utvärderar den 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 <= '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 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 <= 'Ab' AND Population <= 100000 eller District = 'Canary Islands' . Vi kan se bara genom att titta på detta att alla städer från Kanarieöarna 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 <= 'Ab' 
    AND Population <= 100000)
    OR District = 'Canary Islands';

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

Den här gången fick vi bara de städer som tillfredsställde både Population <= 100000 OR District = 'Canary Islands' och Name <= 'Ab' .

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        |
|-----------+------------|
| Fluffy    | 2020-11-20 |
| Wag       | 2020-03-15 |
| Tweet     | 2020-11-28 |
| Fluffy    | 2020-09-17 |
+-----------+------------+

  1. Oracle Regular Expressions. Dangerous Range

  2. Transformera ODBC-data i CloverDX

  3. Hur bestämmer man antalet dagar i en månad i SQL Server?

  4. MySQL ERROR 1045 (28000):Åtkomst nekad för användaren 'bill'@'localhost' (med lösenord:JA)