sql >> Database >  >> RDS >> Database

) Operator voor beginners

In SQL is de operator groter dan (> ) vergelijkt twee uitdrukkingen en retourneert TRUE als de linker operand een hogere waarde heeft dan de rechter operand; anders retourneert het FALSE .

Voorbeeld

Hier is een voorbeeld om te demonstreren.

SELECT * FROM city
WHERE Population > 9000000;

Resultaat:

+------+-----------------+---------------+--------------+--------------+
| ID   | Name            | CountryCode   | District     | Population   |
|------+-----------------+---------------+--------------+--------------|
| 206  | São Paulo       | BRA           | São Paulo    | 9968485      |
| 939  | Jakarta         | IDN           | Jakarta Raya | 9604900      |
| 1024 | Mumbai (Bombay) | IND           | Maharashtra  | 10500000     |
| 1890 | Shanghai        | CHN           | Shanghai     | 9696300      |
| 2331 | Seoul           | KOR           | Seoul        | 9981619      |
| 2822 | Karachi         | PAK           | Sindh        | 9269265      |
+------+-----------------+---------------+--------------+--------------+

Deze zoekopdracht retourneert alle steden met meer dan 9 miljoen inwoners.

Exclusief

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

Het volgende voorbeeld retourneert bijvoorbeeld Karachi niet, dat volgens deze database een populatie van precies 9269265 heeft:

SELECT * FROM city 
WHERE Population > 9269265;

Resultaat:

+------+-----------------+---------------+--------------+--------------+
| ID   | Name            | CountryCode   | District     | Population   |
|------+-----------------+---------------+--------------+--------------|
| 206  | São Paulo       | BRA           | São Paulo    | 9968485      |
| 939  | Jakarta         | IDN           | Jakarta Raya | 9604900      |
| 1024 | Mumbai (Bombay) | IND           | Maharashtra  | 10500000     |
| 1890 | Shanghai        | CHN           | Shanghai     | 9696300      |
| 2331 | Seoul           | KOR           | Seoul        | 9981619      |
+------+-----------------+---------------+--------------+--------------+

Om steden met een bevolking van 9269265 op te nemen, moeten we onze gespecificeerde waarde verlagen:

SELECT * FROM city 
WHERE Population > 9269264;

Resultaat:

+------+-----------------+---------------+--------------+--------------+
| ID   | Name            | CountryCode   | District     | Population   |
|------+-----------------+---------------+--------------+--------------|
| 206  | São Paulo       | BRA           | São Paulo    | 9968485      |
| 939  | Jakarta         | IDN           | Jakarta Raya | 9604900      |
| 1024 | Mumbai (Bombay) | IND           | Maharashtra  | 10500000     |
| 1890 | Shanghai        | CHN           | Shanghai     | 9696300      |
| 2331 | Seoul           | KOR           | Seoul        | 9981619      |
| 2822 | Karachi         | PAK           | Sindh        | 9269265      |
+------+-----------------+---------------+--------------+--------------+

Ofwel dat, of we kunnen de groter dan of gelijk aan (>= gebruiken ) operator.

SELECT * FROM city 
WHERE Population >= 9269265;

Resultaat:

+------+-----------------+---------------+--------------+--------------+
| ID   | Name            | CountryCode   | District     | Population   |
|------+-----------------+---------------+--------------+--------------|
| 206  | São Paulo       | BRA           | São Paulo    | 9968485      |
| 939  | Jakarta         | IDN           | Jakarta Raya | 9604900      |
| 1024 | Mumbai (Bombay) | IND           | Maharashtra  | 10500000     |
| 1890 | Shanghai        | CHN           | Shanghai     | 9696300      |
| 2331 | Seoul           | KOR           | Seoul        | 9981619      |
| 2822 | Karachi         | PAK           | Sindh        | 9269265      |
+------+-----------------+---------------+--------------+--------------+

Datums

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

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

Resultaat:

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

Snaren

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

SELECT * FROM city 
WHERE Name > 'Zukovski'
ORDER BY Name;

Resultaat:

+------+----------+---------------+------------+--------------+
| ID   | Name     | CountryCode   | District   | Population   |
|------+----------+---------------+------------+--------------|
| 2669 | Zumpango | MEX           | México     | 99781        |
| 2025 | Zunyi    | CHN           | Guizhou    | 261862       |
| 3245 | Zürich   | CHE           | Zürich     | 336800       |
| 3145 | Zwickau  | DEU           | Saksi      | 104146       |
| 28   | Zwolle   | NLD           | Overijssel | 105819       |
| 3446 | Zytomyr  | UKR           | Zytomyr    | 297000       |
+------+----------+---------------+------------+--------------+

Meerdere voorwaarden

Als u meerdere voorwaarden heeft, kunt u meerdere operatoren gebruiken die groter zijn dan.

Zoals dit:

SELECT * FROM city 
WHERE Name > 'Zukovski' AND Population > 200000;

Resultaat:

+------+---------+---------------+------------+--------------+
| ID   | Name    | CountryCode   | District   | Population   |
|------+---------+---------------+------------+--------------|
| 2025 | Zunyi   | CHN           | Guizhou    | 261862       |
| 3245 | Zürich  | CHE           | Zürich     | 336800       |
| 3446 | Zytomyr | UKR           | Zytomyr    | 297000       |
+------+---------+---------------+------------+--------------+

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 > 'Zukovski' 
    AND Population > 100000
    OR District = 'Overijssel';

Resultaat:

+------+----------+---------------+------------+--------------+
| ID   | Name     | CountryCode   | District   | Population   |
|------+----------+---------------+------------+--------------|
| 15   | Enschede | NLD           | Overijssel | 149544       |
| 28   | Zwolle   | NLD           | Overijssel | 105819       |
| 2025 | Zunyi    | CHN           | Guizhou    | 261862       |
| 3145 | Zwickau  | DEU           | Saksi      | 104146       |
| 3245 | Zürich   | CHE           | Zürich     | 336800       |
| 3446 | Zytomyr  | UKR           | Zytomyr    | 297000       |
+------+----------+---------------+------------+--------------+

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 > 'Zukovski' AND Population > 100000 of District = 'Overijssel' . Alleen al door hiernaar te kijken kunnen we zien dat alle steden uit de wijk Overijssel worden teruggegeven, plus eventuele steden die aan de eerste criteria voldoen.

Dit is zoiets als het volgende doen:

SELECT * FROM city 
WHERE (Name > 'Zukovski' 
    AND Population > 100000)
    OR District = 'Overijssel';

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 > 'Zukovski' 
    AND (Population > 100000
    OR District = 'Overijssel');

Resultaat:

+------+---------+---------------+------------+--------------+
| ID   | Name    | CountryCode   | District   | Population   |
|------+---------+---------------+------------+--------------|
| 28   | Zwolle  | NLD           | Overijssel | 105819       |
| 2025 | Zunyi   | CHN           | Guizhou    | 261862       |
| 3145 | Zwickau | DEU           | Saksi      | 104146       |
| 3245 | Zürich  | CHE           | Zürich     | 336800       |
| 3446 | Zytomyr | UKR           | Zytomyr    | 297000       |
+------+---------+---------------+------------+--------------+

Deze keer kregen we alleen die steden die voldoen aan zowel Population > 100000 OR District = 'Overijssel' en Name > 'Overijssel' .

Dit resulteerde in slechts één stad uit Overijssel die werd geretourneerd, in tegenstelling tot twee in de vorige zoekopdracht.

De voorwaarde negeren

U kunt de NOT . gebruiken operator om de voorwaarde van de operator groter dan te negeren. Hier is een voorbeeld:

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

Resultaat:

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

  1. Importeer MySQL-dump naar PostgreSQL-database

  2. De standaardwaarden van tabelkolommen in Postgres ophalen?

  3. Een use-case voor sp_prepare / sp_prepexec

  4. Oracle SQL - Som en groepeer gegevens per week