云数据库OceanBase入门教程 OceanBase 比较函数

2024-02-26 开发教程 云数据库OceanBase入门教程 匿名 0

GREATEST

声明

GREATEST(value1, ...)

说明

返回参数的最大值,和函数 LEAST()相对。

参数至少为两个(一个参数将会报错);如果参数中有 NULL, 返回值为 NULL。

当参数中同时存在数值和字符时,把字符隐式转换为数值类型处理,不能转换的报错。

例子

obclient> select greatest(2,1), greatest('2',1,0), greatest('a','b','c'), greatest('a', NULL, 'c'), greatest('2014-05-15','2014-06-01')\G
*************************** 1. row ***************************
greatest(2,1): 2
greatest('2',1,0): 2
greatest('a','b','c'): c
greatest('a', NULL, 'c'): NULL
greatest('2014-05-15','2014-06-01'): 2014-06-01
1 row in set (0.01 sec)
obclient> select greatest(2);
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'greatest'

LEAST

声明

LEAST(value1, ...)

说明

返回参数的最小值,和函数 GREATEST()相对。

参数至少为两个;如果参数中有 NULL,返回值为 NULL。

当参数中同时存在数值和字符时,把字符隐式转换为数值类型处理,不能转换的报错。

例子

obclient> select least(2, null), least('2',4,9), least('a','b','c'), least('a',NULL,'c'), least('2014-05-15','2014-06-01')\G;
*************************** 1. row ***************************
least(2, null): NULL
least('2',4,9): 2
least('a','b','c'): a
least('a',NULL,'c'): NULL
least('2014-05-15','2014-06-01'): 2014-05-15
1 row in set (0.01 sec)
obclient> select least(2);
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'least'

ISNULL

声明

ISNULL(expr)

说明

如果参数 expr为 NULL,那么 ISNULL()的返回值为 1,否则返回值为 0。

ISNULL()函数可以用来替代针对 NULL 的等值(=)比较。(使用 = 的 NULL 值比较通常都是错误的)ISNULL()函数同 IS NULL 比较操作符具有一些相同的特性。

例子

obclient> SELECT ISNULL(null), ISNULL('test'), ISNULL(123.456), ISNULL('10:00');
+--------------+----------------+-----------------+-----------------+
| ISNULL(null) | ISNULL('test') | ISNULL(123.456) | ISNULL('10:00') |
+--------------+----------------+-----------------+-----------------+
| 1 | 0 | 0 | 0 |
+--------------+----------------+-----------------+-----------------+
1 row in set (0.01 sec)
obclient> SELECT ISNULL(null+1);
+----------------+
| ISNULL(null+1) |
+----------------+
| 1 |
+----------------+
1 row in set (0.00 sec)