教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 综合文档 >

GBase 8a学习总结(3)

来源:网络收集 时间:2026-02-25
导读: 项目设计方案 1 row in set 用户变量可以用于表达式所允许的任何地方。注意,必须明确指定常量的上下文中不能使用变量,例如,在SELECT 的LIMIT 子句中。 如果用户使用的变量没有初始化,那么它的值就为NULL。 1.3

项目设计方案

1 row in set

用户变量可以用于表达式所允许的任何地方。注意,必须明确指定常量的上下文中不能使用变量,例如,在SELECT 的LIMIT 子句中。

如果用户使用的变量没有初始化,那么它的值就为NULL。

1.3 操作符和函数

在SQL 语句中可以使用表达式,表达式可以包含常量,字段,NULL,操作符和函数。本章描述GBase 8a MPP Cluster 中用于写在表达式中的操作符和函数。

包含NULL 的表达式总是得出NULL 值结果,除非表达式中的操作和函数在文档中有另外的说明。 1.3.1

操作符

1.3.1.1 操作符优先级

操作符优先级在下面列出,从最高到最低。同一行的操作符具有同样的优先级。

BINARY,COLLATE !

-(unary minus),~(unary bit inversion) ^

*,/,DIV,%,MOD -,+ <<,>> & |

=,<=>,>=,>,<=,<,<>,!=,IS,LIKE,REGEXP,IN BETWEEN,CASE,WHEN,THEN,ELSE NOT &&,AND OR,XOR :=

9

项目设计方案

1.3.1.2 圆括号

(...)

括号,使用它来规定一个表达式的运算顺序,放在括号里的操作符优先执行。 示例1:不使用括号,表达式先执行乘法操作,再执行加法操作。 gbase> SELECT 1+2*3 FROM t; +-------+ | 1+2*3 | +-------+ | 7 | +-------+ 1 row in set

示例2:使用括号,表达式先执行括号中的加法操作,再执行括号外的乘法操作。

gbase> SELECT (1+2)*3 FROM t; +---------+ | (1+2)*3 | +---------+ | 9 | +---------+ 1 row in set 1.3.1.3 比较函数和操作符

比较运算的结果是1(TRUE)、0((FALSE)或NULL。这些运算可用于数字和字符串上。根据需要,字符串将会自动地被转换到数字,而数字也可自动转换为字符串。

说明:本章中的一些函数(如GREATEST()和LEAST())的所得值虽然不包括1(TRUE)、0(FALSE)或NULL,但对参数值进行比较时,也会基于下述规则。

GBase 8a MPP Cluster 使用下列规则进行数值比较:

? 如果一个或两个参数是NULL,比较的结果是NULL,除了<=>比较符(含有

NULL 参数时,比较结果不是NULL)。

10

项目设计方案

? 如果在一个比较操作中两个参数均是字符串,它们作为字符串被比较。 ? 如果两个参数均是整数,它们作为整数被比较。

? 如果比较操作中,一个参数为字符串,另一个为整数,则以操作符左侧参

数的数据类型为准。

? 十六进制值如果不与一个数字进行比较,那么它将当作一个二进制字符串。

? 如果参数之一是DATETIME 列,而另一参数是一个常量,在比较执行之前,这个常量被转换为一个时间戳。需要注意的是IN()中的参数不是这样的。为了安全起见,建议用户在比较时使用完整的DATETIME/DATE/TIME 字符串。

? 在所有其它情况下,参数作为浮点(REAL)数字被比较。 ? 要转换一个值成为一个特殊的类型,用户可以使用CAST()函数。 GBase 8a MPP Cluster主要的比较函数和操作符包括: 1.3.1.3.1

= 等于

a=b

如果两个操作数相等,则返回1。

1.3.1.3.2

<=> NULL值安全等于

NULL 值安全等于。这个操作符像?=?操作符一样执行相等比较。 如果所有的操作数是NULL,那么返回的是1 而不是NULL。 如果有且只有一个操作数是NULL,那么返回的是0 而不是NULL。

1.3.1.3.3

<> , != 不等于

a<>b 或a!=b

如果两个操作数不相等,则返回1。

1.3.1.3.4

<= 小于或者等于

a<=b

如果a 小于或等于b,则返回1。

1.3.1.3.5

<小于

a

如果a 小于b,则返回1。

1.3.1.3.6

>= 大于或者等于

11

项目设计方案

a>=b

如果a 大于或等于b,则返回1。

1.3.1.3.7

>大于

a>b

如果a 大于b,则返回1。

1.3.1.3.8

is boolean_value ,is not boolean_value

根据一个布尔值来检验一个值,此处的布尔值可以是TRUE、FALSE 或 UNKNOWN。

1.3.1.3.9

expr BETWEEN min AND max

如果expr 的值在min 和max 之间(包括min 和max),返回1,否则返回0。

若所有参数都是同一类型,则上述关系相当于表达式(min <= expr AND expr<= max)。其它类型的转换根据本章开篇所述规律进行,且适用于三种参数中任意一种。

1.3.1.3.10 expr NOT BETWEEN min AND max

等同于NOT(expr BETWEEN min AND max)。

1.3.1.3.11 COALESCE(value,...)

返回值为列表当中的第一个非NULL 值,在全部为NULL 值的情况下返回值为NULL。

1.3.1.3.12 GREATEST(value1,value2,...)

当有两个或多个参数时,返回值为最大的参数值。 当参数中有一个为NULL 时,直接返回NULL。

当参数都是字符串时,默认是不区分大小写的,如果希望字符串值的参数进行大小写敏感,则在需要敏感的字符串参数前加上BINARY。

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

? 如果返回值在INTEGER 上下文中或者所有的参数是整型值,那么它们

使用整数比较;

? 如果返回值在REAL 上下文中或者所有的参数是实数值,那么它们使

用实数比较;

12

项目设计方案

? 如果所有的参数是大小写敏感的字符串,那么参数比较也是大小写敏

感的;

? 其它情况下,参数比较大小写不敏感。

1.3.1.3.13 expr IN (value,...)

如果expr 是IN 列表中的任一值,它将返回1,否则返回0。

如果所有的值均是常量,那么所有的值被按照expr 的类型进行计算和排序。

1.3.1.3.14 expr NOT IN (value,...)

等价于NOT(expr IN (value,...))。

1.3.1.3.15 ISNULL(expr)

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

1.3.1.3.16 LEAST(value1,value2,...)

有两个或者更多的参数,返回最小的参数值。假如任意一个变量为NULL,则LEAST()的返回值为NULL。

LEAST()对参数进行比较所依据的规则同GREATEST()相同。

1.3.1.4 逻辑操作符

在SQL 中,所有的逻辑操作符返回的值均为TRUE、FALSE 或NULL(UNKNOWN),它们是由1(TRUE)、0(FALSE)和NULL 来实现的。 1.3.1.4.1

NOT,!逻辑非

如果操作数为0,返回1;如果操作数为非零,返回0;如果操作数为NULL,返回NULL。 1.3.1.4.2

XOR逻辑异或

当任意一个操作数为NULL 时,返回值为NULL。 对于非NULL 的操作数:

真(1)异或假(0)的结果是真,假(0)异或真(1)的结果也是真。 真(1)异或真(1)的结果是假,假(0)异或假(0)的结果是假。 就是说两个值不相同,则异或结果为真,反之,为假。 1.3.1.5 转换操作符和函数 1.3.1.5.1

BINARY

13

…… 此处隐藏:1238字,全部文档内容请下载后查看。喜欢就下载吧 ……
GBase 8a学习总结(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/403042.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)