sql >> Database >  >> RDS >> MariaDB

Hoe GREATEST() werkt in MariaDB

In MariaDB, GREATEST() is een ingebouwde functie die het grootste (d.w.z. grootste/maximaal gewaardeerde) argument uit de lijst met argumenten retourneert.

Het minimum teruggeven -waardeargument, gebruik LEAST() .

Syntaxis

De syntaxis gaat als volgt:

GREATEST(value1,value2,...)

Waar value1,value2,… is twee of meer argumenten waarvoor de grootste moet worden geretourneerd.

Voorbeeld

Hier is een voorbeeld:

SELECT GREATEST(3, 8);

Resultaat:

+----------------+
| GREATEST(3, 8) |
+----------------+
|              8 |
+----------------+

Hier is nog een voorbeeld dat meer argumenten gebruikt:

SELECT GREATEST(3, 8, 9, 12, 80, 7, 4);

Resultaat:

+---------------------------------+
| GREATEST(3, 8, 9, 12, 80, 7, 4) |
+---------------------------------+
|                              80 |
+---------------------------------+

Uitdrukkingen

De argumenten kunnen uitdrukkingen als deze bevatten:

SELECT GREATEST(2 * 3, 1 * 3);

Resultaat:

+------------------------+
| GREATEST(2 * 3, 1 * 3) |
+------------------------+
|                      6 |
+------------------------+

Snaren

De argumenten hoeven niet numeriek te zijn. Hier is bijvoorbeeld een vergelijking van strings:

SELECT GREATEST('a', 'b', 'z');

Resultaat:

+-------------------------+
| GREATEST('a', 'b', 'z') |
+-------------------------+
| z                       |
+-------------------------+

Datums

Hier is een vergelijking van datumreeksen:

SELECT GREATEST('2020-01-01', '2021-01-01');

Resultaat:

+--------------------------------------+
| GREATEST('2020-01-01', '2021-01-01') |
+--------------------------------------+
| 2021-01-01                           |
+--------------------------------------+

Gemengde soorten

De MariaDB-documentatie stelt dat als een argument een hoofdlettergevoelige tekenreeks is, de argumenten worden vergeleken als hoofdlettergevoelige tekenreeksen. Het kan echter zijn dat mengtypes onverwachte resultaten en een waarschuwing kunnen opleveren.

Voorbeeld:

SELECT GREATEST('Cat', 10);

Resultaat:

+---------------------+
| GREATEST('Cat', 10) |
+---------------------+
|                  10 |
+---------------------+
1 row in set, 1 warning (0.000 sec)

Controleer de waarschuwing:

SHOW WARNINGS;

Resultaat:

+---------+------+-----------------------------------------+
| Level   | Code | Message                                 |
+---------+------+-----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'Cat' |
+---------+------+-----------------------------------------+

Nullargumenten

GREATEST() retourneert null als een argument null is :

SELECT GREATEST(1, null, 3);

Resultaat:

+----------------------+
| GREATEST(1, null, 3) |
+----------------------+
|                 NULL |
+----------------------+

Ontbrekende argumenten

GREATEST() . aanroepen met het verkeerde aantal argumenten, of zonder argumenten resulteert in een fout:

SELECT GREATEST();

Resultaat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'GREATEST'

En:

SELECT GREATEST(10);

Resultaat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'GREATEST'

  1. Een kloon maken van uw MySQL- of PostgreSQL-databasecluster

  2. Een Unix-tijdstempel converteren naar een datum/tijd-waarde in PostgreSQL

  3. Retourneer alle externe sleutels en CONTROLEER-beperkingen in een SQL Server-database (T-SQL-voorbeelden)

  4. PostgreSQL proceduretaal C niet gevonden