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,...)
Où 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'