OceanBase 比较函数
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)