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

Fonction MySQL GREATEST() - Trouver le plus grand argument dans une liste d'arguments

Le MySQL GREATEST() La fonction est une fonction de comparaison qui renvoie la plus grande valeur d'une liste de valeurs.

La liste de valeurs est fournie sous forme d'arguments multiples. Donc, en d'autres termes, GREATEST() renvoie l'argument de valeur maximale à partir d'une liste d'arguments.

Syntaxe

La syntaxe de GREATEST() va comme ceci :

GREATEST(value1,value2,...)

Chaque argument est séparé par une virgule. Cette fonction les compare tous et renvoie celui avec la plus grande valeur.

Exemple 1 – Comparer des nombres

Si tous les arguments sont des entiers, ils sont comparés comme des entiers.

SELECT GREATEST(12, 120, 2400) AS 'Result';

Résultat :

+--------+
| Result |
+--------+
|   2400 |
+--------+

Si au moins un argument est en double précision, ils sont comparés en tant que valeurs en double précision. Sinon, si au moins un argument est un DECIMAL valeur, ils sont comparés en tant que DECIMAL valeurs.

SELECT GREATEST(12.00, 120, 2400) AS 'Result';

Résultat :

+---------+
| Result  |
+---------+
| 2400.00 |
+---------+

Voir ci-dessous les règles exactes pour déterminer la valeur de retour.

Exemple 2 – Comparer des chaînes

Voici un exemple de comparaison de chaînes.

SELECT GREATEST('a', 'b', 'c') AS 'Result';

Résultat :

+--------+
| Result |
+--------+
| c      |
+--------+

En voici une autre :

SELECT GREATEST('Cat', 'Dogg', 'Rat') AS 'Result';

Résultat :

+--------+
| Result |
+--------+
| Rat    |
+--------+

Exemple 3 – Valeurs NULL

Si l'un des arguments est NULL , le résultat est NULL .

SELECT GREATEST('a', NULL, 'c') AS 'Result';

Résultat :

+--------+
| Result |
+--------+
| NULL   |
+--------+

Règles de comparaison

Certaines règles sont appliquées lors de la détermination de la valeur de retour. Ces règles sont les suivantes :

  • Si un argument est NULL , le résultat est NULL . Aucune comparaison n'est nécessaire.
  • Si tous les arguments ont une valeur entière, ils sont comparés en tant qu'entiers.
  • Si au moins un argument est en double précision, ils sont comparés en tant que valeurs en double précision. Sinon, si au moins un argument est un DECIMAL valeur, ils sont comparés en tant que DECIMAL valeurs.
  • Si les arguments comprennent un mélange de nombres et de chaînes, ils sont comparés en tant que nombres.
  • Si un argument est une chaîne non binaire (caractère), les arguments sont comparés en tant que chaînes non binaires.
  • Dans tous les autres cas, les arguments sont comparés en tant que chaînes binaires.