大势趋007

每个人都是🏆
  新随笔  :: 管理

GREATEST() 和 LEAST()

Posted on 2025-08-27 17:07  大势趋007  阅读(40)  评论(0)    收藏  举报

一、GREATEST(value1, value2, ...)

  • 功能:返回参与比较参数中最大的(最大值)一个
  • 参数:两个或多个,可为数字、字符串等(可混合)
  • 比较规则:
    • 如果有任意参数为 NULL,结果为 NULL
    • 全为整数,按整数比
    • 存在 double,按 double 比
    • 存在 DECIMAL,按 DECIMAL 比
    • 存在字符串,按字符串比(非二进制字符串比),否则二进制比
  • 返回值的类型:综合比较参数类型
  • 主要用途:找出多列/多值中最大者

示例:

SELECT GREATEST(2, 0);                   -- 结果: 2
SELECT GREATEST(34.0, 3.0, 5.0, 767.0);  -- 结果: 767.0
SELECT GREATEST('B','A','C');            -- 结果: 'C'
SELECT GREATEST(1,NULL,3);               -- 结果: NULL



二、LEAST(value1, value2, ...)

  • 功能:返回参与比较参数中最小的(最小值)一个
  • 参数:两个或多个,可为数字、字符串等
  • 比较规则与 GREATEST 基本相同:
    • 任一参数为 NULL,结果为 NULL
    • 全为整数,按整数比
    • 存在 double,按 double 比
    • 存在 DECIMAL,按 DECIMAL 比
    • 存在字符串,按字符串比(非二进制字符串比),否则二进制比
  • 返回值的类型:综合比较参数类型
  • 主要用途:找出多列/多值中最小者
  • 示例:
SELECT LEAST(2, 0);                  -- 结果: 0
SELECT LEAST(34.0, 3.0, 5.0, 767.0); -- 结果: 3.0
SELECT LEAST('B','A','C');           -- 结果: 'A'
SELECT LEAST(1,NULL,3);              -- 结果: NULL