Database
 sql >> Datenbank >  >> RDS >> Database

SQL Less Than () Operator für Anfänger

In SQL ist der Kleiner-als-Operator (< ) vergleicht zwei Ausdrücke und gibt TRUE zurück wenn der linke Operand einen niedrigeren Wert als der rechte Operand hat; andernfalls ist das Ergebnis FALSE .

Beispiel

Hier ist ein Beispiel zur Veranschaulichung.

SELECT * FROM city 
WHERE Population < 600;

Ergebnis:

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

Diese Abfrage gibt alle Städte zurück, die weniger als 600 Einwohner haben.

Exklusiv

Der Kleiner-als-Operator schließt den angegebenen Wert nicht in seine Auswertung ein.

Das folgende Beispiel gibt beispielsweise nicht Fakaofo zurück, das eine Bevölkerung von 300 hat:

SELECT * FROM city 
WHERE Population < 300;

Ergebnis:

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

Um Städte mit 300 Einwohnern einzubeziehen, müssten wir unseren angegebenen Wert erhöhen:

SELECT * FROM city 
WHERE Population < 301;

Ergebnis:

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

Termine

Hier ist ein Beispiel, das die Verwendung des Kleiner-als-Operators zum Vergleichen von Datumswerten demonstriert.

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

Ergebnis:

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

Strings

Sie können auch den Kleiner-als-Operator verwenden, um Zeichenfolgenwerte zu vergleichen. Verwenden Sie beim Vergleichen mit einem Zeichenfolgenwert Anführungszeichen um die Zeichenfolge.

SELECT * FROM city 
WHERE Name < 'Ab';

Ergebnis:

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

Diese Abfrage gibt alle Städte zurück, die kleiner als Ab sind . Grundsätzlich werden alle Städte zurückgegeben, die mit Buchstaben beginnen, die kleiner als Ab sind .

Mehrere Bedingungen

Wenn Sie mehrere Bedingungen haben, können Sie mehrere Kleiner-als-Operatoren verwenden.

So:

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

Ergebnis:

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

Vorrang

Sie können beim Filtern der Ergebnisse auch eine Kombination von Operatoren verwenden.

Beachten Sie, dass SQL eine Rangfolge hat, die es verschiedenen Operatortypen zuweist. Beispielsweise werden alle bedingten Operatoren vor allen logischen Operatoren wie AND ausgewertet und OR . Es wertet auch jedes AND aus Operatoren vor jedem OR Betreiber.

Klammern haben eine höhere Priorität als alle Operatoren, daher können Sie Klammern verwenden, um die Reihenfolge anzugeben, in der jede Bedingung ausgewertet werden soll.

Betrachten Sie das folgende Beispiel:

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

Ergebnis:

+------+------------------------------+---------------+----------------+--------------+
| 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 dieser Abfrage habe ich keine Klammern angegeben, also das AND Operator wurde vor dem OR ausgewertet Betreiber.

Daher haben wir Zeilen erhalten, die entweder Name < 'Ab' AND Population < 100000 erfüllten oder District = 'Canary Islands' . Wir sehen schon, dass alle Städte der Kanarischen Inseln zurückgegeben werden, plus alle Städte, die das erste Kriterium erfüllen.

Das ist wie das Folgende:

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

Das würde uns das gleiche Ergebnis wie die vorherige Abfrage ohne Klammern liefern.

Aber schauen Sie, was passiert, wenn wir die Klammern zum OR verschieben Zustand.

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

Ergebnis:

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

Dieses Mal haben wir nur die Städte, die sowohl Population < 100000 OR District = 'Canary Islands' erfüllen und Name < 'Ab' .

Verneinung der Bedingung

Sie können den NOT verwenden -Operator, um die vom Kleiner-als-Operator bereitgestellte Bedingung zu negieren. Hier ist ein Beispiel:

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

Ergebnis:

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