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'