GREATEST

声明

GREATEST(value1, ...)

说明

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

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

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

例子

  1. 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
  2. *************************** 1. row ***************************
  3. greatest(2,1): 2
  4. greatest('2',1,0): 2
  5. greatest('a','b','c'): c
  6. greatest('a', NULL, 'c'): NULL
  7. greatest('2014-05-15','2014-06-01'): 2014-06-01
  8. 1 row in set (0.01 sec)
  9. obclient> select greatest(2);
  10. ERROR 1582 (42000): Incorrect parameter count in the call to native function 'greatest'

LEAST

声明

LEAST(value1, ...)

说明

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

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

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

例子

  1. 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;
  2. *************************** 1. row ***************************
  3. least(2, null): NULL
  4. least('2',4,9): 2
  5. least('a','b','c'): a
  6. least('a',NULL,'c'): NULL
  7. least('2014-05-15','2014-06-01'): 2014-05-15
  8. 1 row in set (0.01 sec)
  9. obclient> select least(2);
  10. 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 比较操作符具有一些相同的特性。

例子

  1. obclient> SELECT ISNULL(null), ISNULL('test'), ISNULL(123.456), ISNULL('10:00');
  2. +--------------+----------------+-----------------+-----------------+
  3. | ISNULL(null) | ISNULL('test') | ISNULL(123.456) | ISNULL('10:00') |
  4. +--------------+----------------+-----------------+-----------------+
  5. | 1 | 0 | 0 | 0 |
  6. +--------------+----------------+-----------------+-----------------+
  7. 1 row in set (0.01 sec)
  8. obclient> SELECT ISNULL(null+1);
  9. +----------------+
  10. | ISNULL(null+1) |
  11. +----------------+
  12. | 1 |
  13. +----------------+
  14. 1 row in set (0.00 sec)