sql >> Database >  >> RDS >> Database

SQL Less Than () Operator voor beginners

In SQL is de operator kleiner dan (< ) vergelijkt twee uitdrukkingen en retourneert TRUE als de linker operand een waarde heeft die lager is dan de rechter operand; anders is het resultaat FALSE .

Voorbeeld

Hier is een voorbeeld om te demonstreren.

SELECT * FROM city 
WHERE Population < 600;

Resultaat:

+------+--------------------+---------------+-------------+--------------+
| ID   | Name               | CountryCode   | District    | Population   |
|------+--------------------+---------------+-------------+--------------|
| 62   | The Valley         | AIA           | –           | 595          |
| 2316 | Bantam             | CCK           | Home Island | 503          |
| 2317 | West Island        | CCK           | West Island | 167          |
| 2728 | Yaren              | NRU           | –           | 559          |
| 2912 | Adamstown          | PCN           | –           | 42           |
| 3333 | Fakaofo            | TKL           | Fakaofo     | 300          |
| 3538 | Città del Vaticano | VAT           | –           | 455          |
+------+--------------------+---------------+-------------+--------------+

Deze zoekopdracht retourneert alle steden met minder dan 600 inwoners.

Exclusief

De operator kleiner dan neemt de opgegeven waarde niet op in zijn evaluatie.

Het volgende voorbeeld retourneert bijvoorbeeld geen Fakaofo, die een populatie van 300 heeft:

SELECT * FROM city 
WHERE Population < 300;

Resultaat:

+------+-------------+---------------+-------------+--------------+
| ID   | Name        | CountryCode   | District    | Population   |
|------+-------------+---------------+-------------+--------------|
| 2317 | West Island | CCK           | West Island | 167          |
| 2912 | Adamstown   | PCN           | –           | 42           |
+------+-------------+---------------+-------------+--------------+

Om steden met 300 inwoners op te nemen, moeten we onze gespecificeerde waarde verhogen:

SELECT * FROM city 
WHERE Population < 301;

Resultaat:

+------+-------------+---------------+-------------+--------------+
| ID   | Name        | CountryCode   | District    | Population   |
|------+-------------+---------------+-------------+--------------|
| 2317 | West Island | CCK           | West Island | 167          |
| 2912 | Adamstown   | PCN           | –           | 42           |
| 3333 | Fakaofo     | TKL           | Fakaofo     | 300          |
+------+-------------+---------------+-------------+--------------+

Datums

Hier is een voorbeeld om te demonstreren dat u de operator kleiner dan gebruikt om datumwaarden te vergelijken.

SELECT PetName, DOB 
FROM Pets
WHERE DOB < '2020-01-01';

Resultaat:

+-----------+------------+
| PetName   | DOB        |
|-----------+------------|
| Fetch     | 2019-08-16 |
| Scratch   | 2018-10-01 |
+-----------+------------+

Snaren

U kunt ook de operator kleiner dan gebruiken om tekenreekswaarden te vergelijken. Gebruik aanhalingstekens rond de tekenreeks wanneer u deze vergelijkt met een tekenreekswaarde.

SELECT * FROM city 
WHERE Name < 'Ab';

Resultaat:

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

Deze zoekopdracht retourneert alle steden die kleiner zijn dan Ab . In principe geeft het alle steden terug die beginnen met letters lager dan Ab .

Meerdere voorwaarden

Als u meerdere voorwaarden heeft, kunt u meerdere minder-dan-operators gebruiken.

Zoals dit:

SELECT * FROM city 
WHERE Name < 'Ab' AND Population < 100000;

Resultaat:

+------+--------+---------------+------------+--------------+
| ID   | Name   | CountryCode   | District   | Population   |
|------+--------+---------------+------------+--------------|
| 548  | Šumen  | BGR           | Varna      | 94686        |
| 3479 | Šostka | UKR           | Sumy       | 90000        |
+------+--------+---------------+------------+--------------+

Voorrang

U kunt ook een combinatie van operators gebruiken bij het filteren van de resultaten.

Merk op dat SQL een prioriteitsvolgorde heeft die wordt toegewezen aan verschillende typen operatoren. Het evalueert bijvoorbeeld voorwaardelijke operators vóór logische operators, zoals AND en OR . Het evalueert ook elke AND operatoren voor een OR operators.

Haakjes hebben een hogere prioriteit dan alle operators, en daarom kunt u haakjes gebruiken om de volgorde aan te geven waarin elke voorwaarde moet worden geëvalueerd.

Beschouw het volgende voorbeeld:

SELECT * FROM city 
WHERE Name < 'Ab' 
    AND Population < 100000
    OR District = 'Canary Islands';

Resultaat:

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

In deze zoekopdracht heb ik geen haakjes opgegeven, dus de AND operator werd geëvalueerd vóór de OR telefoniste.

Daarom hebben we rijen die voldeden aan Name < 'Ab' AND Population < 100000 of District = 'Canary Islands' . Alleen al door hiernaar te kijken, kunnen we zien dat alle steden van de Canarische Eilanden worden geretourneerd, plus alle steden die aan de eerste criteria voldoen.

Dit is zoiets als het volgende doen:

SELECT * FROM city 
WHERE (Name < 'Ab' 
    AND Population < 100000)
    OR District = 'Canary Islands';

Dat zou ons hetzelfde resultaat geven als de vorige zoekopdracht zonder haakjes.

Maar kijk wat er gebeurt als we de haakjes verplaatsen naar de OR staat.

SELECT * FROM city 
WHERE Name < 'Ab' 
    AND (Population < 100000
    OR District = 'Canary Islands');

Resultaat:

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

Deze keer hebben we alleen die steden die voldoen aan beide Population < 100000 OR District = 'Canary Islands' en Name < 'Ab' .

De voorwaarde negeren

U kunt de NOT . gebruiken operator om de voorwaarde van de minder dan operator teniet te doen. Hier is een voorbeeld:

SELECT PetName, DOB 
FROM Pets
WHERE NOT DOB < '2019-12-31';

Resultaat:

+-----------+------------+
| PetName   | DOB        |
|-----------+------------|
| Fluffy    | 2020-11-20 |
| Wag       | 2020-03-15 |
| Tweet     | 2020-11-28 |
| Fluffy    | 2020-09-17 |
+-----------+------------+

  1. Vind schendingen van buitenlandse sleutels in SQLite

  2. Hoe BIN() werkt in MariaDB

  3. php include error kan het pad niet vinden

  4. Hoe kan ik gegevens uit ASCII (ISO/IEC 8859-1) importeren in mijn Rails/PGSQL-database?