Comment obtenir le maximum de deux valeurs dans MySQL?
J'ai essayé mais j'ai échoué:
mysql> select max(1,0);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0)' at line 1
237
demandé sur
Taryn
2009-10-14 15:25:39
3 réponses
Pour obtenir la valeur maximale d'une colonne sur un ensemble de lignes:
SELECT MAX(column1) FROM table; -- expect one result
Pour obtenir la valeur maximale d'un ensemble de colonnes, littéraux ou variables pour chaque ligne:
SELECT GREATEST(column1, 1, 0, @val) FROM table; -- expect many results
21
répondu
cs_alumnus
2014-10-13 18:07:18
Vous pouvez utiliser la fonction GREATEST avec des champs non nullables. Si l'une de ces valeurs (ou les deux) peut être NULL, ne l'utilisez pas (le résultat peut être NULL).
select
if(
fieldA is NULL,
if(fieldB is NULL, NULL, fieldB), /* second NULL is default value */
if(fieldB is NULL, field A, GREATEST(fieldA, fieldB))
) as maxValue
Vous pouvez changer NULL à votre valeur par défaut préférée (si les deux valeurs sont NULL).
4
répondu
Leonid Zakharov
2016-07-09 00:16:12