La fonction GREATEST compare un ensemble de valeurs et renvoie la plus grande.
Syntaxe
greatest(<var1>, <var2>[,...])
Paramètres
var : obligatoire. Valeur d'entrée. Types acceptés : BIGINT, DOUBLE, DECIMAL, DATETIME, DATE ou STRING.
Valeur de retour
Renvoie la valeur maximale parmi les paramètres d'entrée.
Si tous les paramètres d'entrée sont du même type, la valeur de retour conserve ce type.
-
Si les types de données des paramètres diffèrent, une conversion implicite s'applique selon les règles suivantes :
Les comparaisons entre DOUBLE, BIGINT et STRING convertissent les valeurs en DOUBLE.
Les comparaisons entre DECIMAL, DOUBLE, BIGINT et STRING convertissent les valeurs en DECIMAL.
-
Les comparaisons entre STRING et DATETIME convertissent les valeurs en DATETIME.
RemarqueSi l'entrée est une chaîne STRING au format
yyyy-mm-dd hh:mi:sset que la version des types de données du projet MaxCompute est 1.0, la valeur est implicitement convertie en DATETIME avant le calcul. Pour configurer la version des types de données, consultez la rubrique MaxCompute V1.0 data type edition.
Par défaut, les valeurs NULL sont considérées comme les plus petites. Si
set odps.sql.hive.compatible=true;est activé et qu'un paramètre d'entrée est NULL, le résultat renvoyé est NULL.
Exemples
-- 返回9.9。
SELECT greatest(2.5,5,3.14BD,'9.9');
-- 返回2025-10-01 12:00:00。
SELECT greatest(datetime'2025-10-01 12:00:00',null) AS result;
-- 返回2026-01-01。
SELECT greatest(date'2025-10-01', date'2025-10-03',date'2026-01-01',date'2025-02-02') AS result;
-- 返回2025-10-02 12:00:00。
set odps.sql.type.system.odps2=false;
SELECT greatest(datetime'2025-10-01 12:00:00', '2025-10-02 12:00:00') AS result;
Documentation connexe
La fonction GREATEST fait partie des fonctions mathématiques.