MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment GREATEST() fonctionne dans MariaDB

Dans MariaDB, GREATEST() est une fonction intégrée qui renvoie le plus grand argument (c'est-à-dire le plus grand/la valeur maximale) de sa liste d'arguments.

Pour retourner le minimum -argument valué, utilisez LEAST() .

Syntaxe

La syntaxe ressemble à ceci :

GREATEST(value1,value2,...)

value1,value2,… est deux arguments ou plus pour lesquels renvoyer le plus grand.

Exemple

Voici un exemple :

SELECT GREATEST(3, 8);

Résultat :

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

Voici un autre exemple qui utilise plus d'arguments :

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

Résultat :

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

Expressions

Les arguments peuvent inclure des expressions telles que :

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

Résultat :

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

Chaînes

Les arguments n'ont pas besoin d'être numériques. Par exemple, voici une comparaison de chaînes :

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

Résultat :

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

Dates

Voici une comparaison des chaînes de date :

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

Résultat :

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

Types mixtes

La documentation MariaDB indique que si un argument est une chaîne sensible à la casse, les arguments sont comparés en tant que chaînes sensibles à la casse. Cependant, vous pouvez constater que le mélange de types peut produire des résultats inattendus et un avertissement.

Exemple :

SELECT GREATEST('Cat', 10);

Résultat :

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

Vérifiez l'avertissement :

SHOW WARNINGS;

Résultat :

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

Arguments nuls

GREATEST() renvoie null si un argument est null :

SELECT GREATEST(1, null, 3);

Résultat :

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

Arguments manquants

Appel de GREATEST() avec le mauvais nombre d'arguments, ou sans aucun argument entraîne une erreur :

SELECT GREATEST();

Résultat :

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

Et :

SELECT GREATEST(10);

Résultat :

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