返回首页

gbase数据、南大通用产品文档:GBase8aMINUS

更新日期:2024年09月11日

功能说明
MINUS(差运算符)返回结果集为第一个SELECT 语句的结果集,并且这个结果集
的查询结果所包含的信息不能出现在第二个查询语句结果集中。另外差运算不忽
略空值。
语法格式
select_statement1
MINUS
select_statement2
表5- 106 参数说明
参数名称


select_statement
SELECT 语句。
示例
示例1:SELECT ...MINUS SELECT...
示例中所用的表及数据:
CREATE TABLE t1 (a int , b varchar(10));
INSERT INTO t1 VALUES(1,'a'),(2,'b'),(3,'c');

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1100
INSERT INTO t1 VALUES(null,null);
CREATE TABLE t2 (c int ,d varchar(20),e varchar(5));
INSERT INTO t2 VALUES(1,'a','aa'),(2,'b','bb'),(4,'c','cc');
MINUS
执行结果:
gbase> SELECT a,b FROM t1;
+------+------+
| a
| b
|
+------+------+
|
1 | a
|
|
2 | b
|
|
3 | c
|
| NULL | NULL |
+------+------+
4 rows in set
gbase> SELECT c AS a, d AS b FROM t2;
+------+------+
| a
| b
|
+------+------+
|
1 | a
|
|
2 | b
|
|
4 | c
|
+------+------+
3 rows in set
gbase> SELECT a ,b FROM t1 MINUS SELECT c AS a, d AS b FROM t2;
+------+------+
| a
| b
|
+------+------+
|
3 | c
|
| NULL | NULL |
+------+------+
2 rows in set

操作符
操作符优先级
说明

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 362
操作符优先级在下面列出,从最高到最低。同一行的操作符具有同样的优先级。
BINARY,COLLATE
!
-(unary minus),~(unary bit inversion)
^
*,/,DIV,%,MOD
-,+
<<,>>
&
|
=,<=>,>=,>,<=,<,<>,!=,IS,LIKE,REGEXP,IN
BETWEEN,CASE,WHEN,THEN,ELSE
NOT
&&,AND
OR,XOR
:=
圆括号
说明
(...)
括号,使用它来规定一个表达式的运算顺序,放在括号里的操作符优先执行。
示例

示例1:不使用括号,表达式先执行乘法操作,再执行加法操作。
gbase> SELECT 1+2*3 FROM t;
+-------+
| 1+2*3 |
+-------+
| 7 |
+-------+
1 row in set

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

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 363
gbase> SELECT (1+2)*3 FROM t;
+---------+
| (1+2)*3 |
+---------+
| 9 |
+---------+
1 row in set
比较函数和操作符
概述
比较运算的结果是1(TRUE)、0(FALSE)或NULL。
这些运算可用于数字和字符串上。根据需要,字符串将会自动地被转换到数字,而
数字也可自动转换为字符串。
说明
本章中的一些函数
(如GREATEST()和LEAST())
的所得值虽然不包括1
(TRUE)

0
(FALSE)
或NULL,但对参数值进行比较时,也会基于下述规则。

GBase UP 使用下列规则进行数值比较:
1)
如果一个或两个参数是NULL,
比较的结果是NULL,
除了<=>比较符
(含
有NULL 参数时,比较结果不是NULL)。
2)
如果在一个比较操作中两个参数均是字符串,它们作为字符串被比较。
3)
如果两个参数均是整数,它们作为整数被比较。
4)
如果比较操作中,一个参数为字符串,另一个为整数,则以操作符左侧参
数的数据类型为准。
5)
十六进制值如果不与一个数字进行比较,那么它将当作一个二进制字符
串。
6)
如果参数之一是DATETIME 列,而另一参数是一个常量,在比较执行之
前,这个常量被转换为一个时间戳。
注意
IN()中的参数不是这样的。为了安全起见,建议用户在比较时使用完整的
DATETIME/DATE/TIME 字符串。

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 364
在所有其它情况下,参数作为浮点(REAL)数字被比较。
要转换一个值成为一个特殊的类型,用户可以使用CAST()函数。
注意
HIVE 引擎不支持BINARY。

本版本兼容了Oracle 的PL/SQL 程序语言语法,兼容数据库支持的存储过程、函数两个
对象,支持创建、删除PL/SQL 语法的存储过程、函数,支持简单语法的存储过程、函数平
滑迁移。
(1) 创建调用删除存储过程
与原系统保持一致,存储过程支持PL/SQL 语法。
(2) PL/SQL 基础语法兼容
详细介绍参见文档:《GBase 8s V8.8 PL/SQL 语法》第一章和第二章。

What’s new in GBase 8s V8.8


南大通用数据技术股份有限公司
23/60


(3) PL/SQL 控制语句兼容
详细介绍参见文档:《GBase 8s V8.8 PL/SQL 语法》第三章。
(4) PL/SQL 集合与记录兼容
详细介绍参见文档:《GBase 8s V8.8 PL/SQL 语法》第四章。
(5) PL/SQL 静态SQL 兼容
详细介绍参见文档:《GBase 8s V8.8 PL/SQL 语法》第五章。
(6) PL/SQL 动态SQL 兼容
详细介绍参见文档:《GBase 8s V8.8 PL/SQL 语法》第六章。
(7) PL/SQL 异常处理兼容
详细介绍参见文档:《GBase 8s V8.8 PL/SQL 语法》第七章。