暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8a通过GREATEST函数返回参数列表里的最大值,与MAX的区别

生命之源 2021-06-24
1938

GBase 8a提供了greatest函数,返回参数列表里,最大的一个值。这个是针对当前行的多个列或表达式计算结果,而max函数是多行的某个列或表达式的最大值。

语法

GREATEST(value1,value2,…)

说明

当有两个或多个参数时,返回值为最大的参数值。
当参数中有一个为 NULL 时,直接返回 NULL。
当参数都是字符串时,默认是不区分大小写的,如果希望进行字符串取值大小写
敏感的比较,则在需要敏感的字符串参数前加上 BINARY。

这些参数比较使用下列规则:

• 如果返回值在 INTEGER 上下文中或者所有的参数是整型值,那么它们使用整数比较;
• 如果返回值在 REAL 上下文中或者所有的参数是实数值,那么它们使用实数比较;
• 如果所有的参数是大小写敏感的字符串,那么参数比较也是大小写敏感的;其它情况下,参数比较大小写不敏感。

如上注意,

1、不能有NULL,否则返回NULL
2、如果有数字,则全部按数字比较,会有隐形转换。

样例

全部数字

+---------------------------+
| greatest(1,2,3,4,5,6,7,8) |
+---------------------------+
|                         8 |
+---------------------------+
1 row in set (Elapsed: 00:00:00.00)

全部字符串

+---------------------------+
| greatest('a','A','b','c') |
+---------------------------+
| c                         |
+---------------------------+
1 row in set (Elapsed: 00:00:00.00)

混合字符和数字

+-----------------------------+
| greatest('a','A','b','c',9) |
+-----------------------------+
| 9                           |
+-----------------------------+
1 row in set, 4 warnings (Elapsed: 00:00:00.00)

gbase> show warnings;
+---------+------+---------------------------------------+
| Level   | Code | Message                               |
+---------+------+---------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'a' |
| Warning | 1292 | Truncated incorrect DOUBLE value: 'A' |
| Warning | 1292 | Truncated incorrect DOUBLE value: 'b' |
| Warning | 1292 | Truncated incorrect DOUBLE value: 'c' |
+---------+------+---------------------------------------+
4 rows in set (Elapsed: 00:00:00.00)
包含null
gbase> select greatest('a','A','b','c',null);
+--------------------------------+
| greatest('a','A','b','c',null) |
+--------------------------------+
| NULL                           |
+--------------------------------+
1 row in set (Elapsed: 00:00:00.00)

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论