MariaDB GREATEST() 函数的基础用法与实例
MariaDB GREATEST()
函数是一个用于返回一组值中最大值的函数。
MariaDB GREATEST()
函数是一个用于返回一组值中最大值的函数。函数可以接受任意数量的参数,参数可以是数字,字符串,日期,时间,或者其他可比较的类型。函数会根据参数的类型进行隐式转换,然后返回最大的参数值。
语法
MariaDB GREATEST()
函数的语法如下:
GREATEST(value1, value2, ..., valueN)
其中,value1, value2, ..., valueN
是一组要比较的值,可以是常量,变量,表达式,或者列名。函数会返回这组值中最大的值,如果所有的值都为 NULL,那么函数也会返回 NULL。
MariaDB GREATEST()
函数的返回值的类型取决于参数的类型,函数会遵循以下的规则:
- 如果所有的参数都是整数,那么返回值也是整数。
- 如果有任何一个参数是浮点数,那么返回值也是浮点数。
- 如果有任何一个参数是字符串,那么返回值也是字符串,按照字典序进行比较。
- 如果有任何一个参数是日期,时间,或者日期时间,那么返回值也是日期,时间,或者日期时间,按照时间顺序进行比较。
实例
下面是一些使用 MariaDB GREATEST()
函数的实例。
返回一组数字中的最大值
在这个实例中,我们使用 MariaDB GREATEST()
函数返回一组数字中的最大值。我们可以看到,函数会根据参数的类型返回相应的类型,如果有浮点数,那么返回值也是浮点数。
SELECT GREATEST(1, 2, 3, 4, 5);
-- 返回值为 5,类型为整数
SELECT GREATEST(1.5, 2.3, 3.7, 4.1, 5.9);
-- 返回值为 5.9,类型为浮点数
SELECT GREATEST(1, 2.5, 3, 4.5, 5);
-- 返回值为 5,类型为浮点数
+-------------------------+
| GREATEST(1, 2, 3, 4, 5) |
+-------------------------+
| 5 |
+-------------------------+
+-----------------------------------+
| GREATEST(1.5, 2.3, 3.7, 4.1, 5.9) |
+-----------------------------------+
| 5.9 |
+-----------------------------------+
+-----------------------------+
| GREATEST(1, 2.5, 3, 4.5, 5) |
+-----------------------------+
| 5.0 |
+-----------------------------+
返回一组字符串中的最大值
在这个实例中,我们使用 MariaDB GREATEST()
函数返回一组字符串中的最大值。我们可以看到,函数会按照字典序进行比较,返回最大的字符串。
SELECT GREATEST('apple', 'banana', 'cherry', 'date', 'elderberry');
-- 返回值为 'elderberry',类型为字符串
SELECT GREATEST('a', 'b', 'c', 'd', 'e');
-- 返回值为 'e',类型为字符串
SELECT GREATEST('A', 'B', 'C', 'D', 'E');
-- 返回值为 'E',类型为字符串
+-------------------------------------------------------------+
| GREATEST('apple', 'banana', 'cherry', 'date', 'elderberry') |
+-------------------------------------------------------------+
| elderberry |
+-------------------------------------------------------------+
+-----------------------------------+
| GREATEST('a', 'b', 'c', 'd', 'e') |
+-----------------------------------+
| e |
+-----------------------------------+
+-----------------------------------+
| GREATEST('A', 'B', 'C', 'D', 'E') |
+-----------------------------------+
| E |
+-----------------------------------+
返回一组日期,时间,或者日期时间中的最大值
在这个实例中,我们使用 MariaDB GREATEST()
函数返回一组日期,时间,或者日期时间中的最大值。我们可以看到,函数会按照时间顺序进行比较,返回最大的日期,时间,或者日期时间。
SELECT GREATEST('2021-01-01', '2021-02-01', '2021-03-01', '2021-04-01', '2021-05-01');
-- 返回值为 '2021-05-01',类型为日期
SELECT GREATEST('10:00:00', '11:00:00', '12:00:00', '13:00:00', '14:00:00');
-- 返回值为 '14:00:00',类型为时间
SELECT GREATEST('2021-01-01 10:00:00', '2021-02-01 11:00:00', '2021-03-01 12:00:00', '2021-04-01 13:00:00', '2021-05-01 14:00:00');
-- 返回值为 '2021-05-01 14:00:00',类型为日期时间
+--------------------------------------------------------------------------------+
| GREATEST('2021-01-01', '2021-02-01', '2021-03-01', '2021-04-01', '2021-05-01') |
+--------------------------------------------------------------------------------+
| 2021-05-01 |
+--------------------------------------------------------------------------------+
+----------------------------------------------------------------------+
| GREATEST('10:00:00', '11:00:00', '12:00:00', '13:00:00', '14:00:00') |
+----------------------------------------------------------------------+
| 14:00:00 |
+----------------------------------------------------------------------+
+-----------------------------------------------------------------------------------------------------------------------------+
| GREATEST('2021-01-01 10:00:00', '2021-02-01 11:00:00', '2021-03-01 12:00:00', '2021-04-01 13:00:00', '2021-05-01 14:00:00') |
+-----------------------------------------------------------------------------------------------------------------------------+
| 2021-05-01 14:00:00 |
+-----------------------------------------------------------------------------------------------------------------------------+
返回一组不同类型的值中的最大值
在这个实例中,我们使用 MariaDB GREATEST()
函数返回一组不同类型的值中的最大值。我们可以看到,函数会根据参数的类型进行隐式转换,然后返回最大的值。如果参数的类型不兼容,那么函数会返回 NULL。
SELECT GREATEST(1, '2', 3, '4', 5);
-- 返回值为 5,类型为整数,字符串会被转换为数字
SELECT GREATEST('2021-01-01', '10:00:00', '2021-01-01 10:00:00');
-- 返回值为 '2021-01-01 10:00:00',类型为日期时间,日期和时间会被转换为日期时间
SELECT GREATEST(-1, 'a', -3, 'b', -5);
-- 返回值为 5,类型为,数字和字符串比较时,将尝试将字符串转为数字,如果转换失败则转换为0
+-----------------------------+
| GREATEST(1, '2', 3, '4', 5) |
+-----------------------------+
| 5 |
+-----------------------------+
+-----------------------------------------------------------+
| GREATEST('2021-01-01', '10:00:00', '2021-01-01 10:00:00') |
+-----------------------------------------------------------+
| 2021-01-01 10:00:00 |
+-----------------------------------------------------------+
+--------------------------------+
| GREATEST(-1, 'a', -3, 'b', -5) |
+--------------------------------+
| 0 |
+--------------------------------+
相关函数
除了 MariaDB GREATEST()
函数,还有一些与之相反的函数,如下:
LEAST(value1, value2, ..., valueN)
:用于返回一组值中最小值的函数。函数的参数和返回值的类型和规则与GREATEST()
函数相同,只是比较的方向相反。COALESCE(value1, value2, ..., valueN)
:用于返回一组值中第一个非 NULL 值的函数。函数的参数可以是任意类型,返回值的类型与第一个非 NULL 值的类型相同。如果所有的值都为 NULL,那么函数也会返回 NULL。
结论
MariaDB GREATEST()
函数是一个用于返回一组值中最大值的函数。函数可以接受任意数量的参数,参数可以是数字,字符串,日期,时间,或者其他可比较的类型。函数会根据参数的类型进行隐式转换,然后返回最大的参数值。函数的返回值的类型也取决于参数的类型,函数会遵循一些规则来确定返回值的类型。如果参数的类型不兼容,那么函数会返回 NULL。函数会忽略 NULL 值,返回非 NULL 值中的最大值。除了 MariaDB GREATEST()
函数,还有一些与之相反或相关的函数,可以用于返回最小值或第一个非 NULL 值。