GREATEST

GREATEST用于比较一组值,并返回其中的最大值。

命令格式

greatest(<var1>, <var2>[,...])

参数说明

var:必填,输入值。BIGINT、DOUBLE、DECIMAL、DATETIME、DATESTRING类型。

返回值说明

  1. 返回输入参数中的最大值。

  • 当输入参数数据类型相同时,返回值同输入参数数据类型。

  • 当输入参数数据类型不相同时,会进行隐式转换,规则如下:

    • DOUBLE、BIGINT、STRING之间的比较会转换为DOUBLE类型。

    • DECIMAL、DOUBLE、BIGINTSTRING之间的比较会转换为DECIMAL类型。

    • STRING、DATETIME的比较会转换为DATETIME类型。

      说明

      当输入格式为yyyy-mm-dd hh:mi:ssSTRING类型,且MaxCompute项目的数据类型版本是1.0时,则会隐式转换为DATETIME类型后参与运算。数据类型版本设置请参见1.0数据类型版本

  1. NULL值默认为最小值。当set odps.sql.hive.compatible=true;时,若任意参数输入为NULL,返回结果为NULL。

使用示例

-- 返回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;

相关文档

  • GREATEST函数属于数学函数,更多数据计算、数据转换的相关函数请参见数学函数