#GREATEST

greatest
GREATEST ( expr , )

GREATEST从多个参数expr的值中找出最大的一个值,并按第一个参数的数据类型返回结果。其规则为:

  • 当expr值全为数值型数据时,按大小进行比较。
  • 当第一个expr值为数值型数据,且存在一部分为字符型数据时,将字符型转换为NUMBER类型后执行比较,如转换失败则返回Invalid number错误。
  • 当expr值全为字符型数据时,按字典序进行比较。
  • 当第一个expr值为字符型数据,且存在一部分为非字符型数据时,会把非字符型转换成字符型,然后按字典序进行比较。
  • 当expr值全为日期时间型数据时,按照时间大小进行比较。
  • 当expr值全为布尔型数据时,按照true=1,false=0进行比较。
  • 当参数列表中的任一个expr值为NULL时,函数返回NULL。
  • 当expr为LOB、XMLTYPE、JSON时,函数返回unexpected lob错误。
  • 上述之外的其他情形,函数返回Invalid datatype错误。

示例

SELECT GREATEST(2, 5, 12, 3, 16, 8, 9) AS RES1,
GREATEST('A', 6, 7, 5000, 'E', 'F','G') AS RES2,
GREATEST(SYSDATE,TO_DATE('2014-08-01','YYYY-MM-DD')) AS RES3,
GREATEST(true,false) RES4
FROM DUAL;
        RES1 RES2  RES3                             RES4                
------------ ----- -------------------------------- --------------------
          16 G     2021-12-02 23:09:54              true
pdf-btn 下载文档
copy-btn 复制链接